Ajar anda cara menggunakan alat pemindahan pangkalan data PHP 'Phinx'

Lepaskan: 2023-04-10 22:00:01
ke hadapan
5881 orang telah melayarinya

Artikel ini berkongsi pengetahuan tentang Phinx, alat penghijrahan pangkalan data yang digunakan dalam pemprosesan PHP amat sesuai untuk pembangunan, ujian, penyegerakan pangkalan data dalam talian bagi maklumat medan, maklumat data, penjanaan dan penyegerakan data ujian. Tunggu, saya harap ia membantu semua orang.

Ajar anda cara menggunakan alat pemindahan pangkalan data PHP 'Phinx'

Alamat dokumen: https://tsy12321.gitbooks.io/phinx-doc/content

Pemasangan

composer require nhzex/think-phinx
Salin selepas log masuk

2. Laksanakan

php vendor/bin/phinx
Salin selepas log masuk

dan jalankan php vendor/bin/phinx init secara langsung untuk menjana fail konfigurasi

Kaedah lain ialah dengan terus menggunakan fail php untuk membuat fail konfigurasi

Jalankan php vendor/bin/phinx init terus untuk menjana fail konfigurasi

Kaedah lain ialah menggunakan fail php secara terus sebagai fail konfigurasi

3. Gunakan phinx.php untuk mengkonfigurasi

<?php
$config = array(
    &#39;DB_HOST&#39; => &#39;localhost&#39;,
    &#39;DB_NAME&#39; => &#39;root&#39;,
    &#39;DB_USER&#39; => &#39;root&#39;,
    &#39;DB_PWD&#39; => &#39;&#39;,
);
$settings = $config;
#phinx.php
<?php
require &#39;db_config.php&#39;;
return array(
    "paths" => array(
        "migrations"    => "db/migrations",
        "seeds"         => "db/seeds"
    ),
    "environments"   => array(
        "defaut_migration_table"    => "phinxlog",
        "default_database"          => "lleg",
        "default_environment"       => "development"
        "production"   => array(
            "adapter"   => "mysql",
            "host"      => $settings["DB_HOST"],
            "name"      => $settings["DB_NAME"],
            "user"      => $settings["DB_USER"],
            "pass"      => $settings["DB_PWD"],
            "port"      => 3306,
            "charset"   => "utf8"
        ),
        "development"   => array(
            "adapter"   => "mysql",
            "host"      => $settings["DB_HOST"],
            "name"      => $settings["DB_NAME"],
            "user"      => $settings["DB_USER"],
            "pass"      => $settings["DB_PWD"],
            "port"      => 3306,
            "charset"   => "utf8"
        )
    )
);
Salin selepas log masuk

4. Laksanakan status vendor/bin/phinx php Semak status sambungan

5

6 Dibuat /db/migrations/20180310020523_migration.php kini dijanaEdit fail ini dan tambah kandungan penciptaan pangkalan data.

public function change() {
        $user = $this->table(&#39;user&#39;);
        $user->addColumn(&#39;open_id&#39;, &#39;string&#39;, [&#39;limit&#39;=>64]);
        $user->addColumn(&#39;register_time&#39;, &#39;timestamp&#39;, [&#39;default&#39; => &#39;CURRENT_TIMESTAMP&#39;]);
        $user->addColumn(&#39;favorite_music&#39;, &#39;integer&#39;, [&#39;default&#39;=> 0, &#39;comment&#39;=>&#39;喜欢的音乐&#39;]);
        $user->addColumn(&#39;favorite_vedio&#39;, &#39;integer&#39;, [&#39;default&#39;=> 0, &#39;comment&#39;=>&#39;喜欢的视频数&#39;]);
        $user->addColumn(&#39;favorite_article&#39;, &#39;integer&#39;, [&#39;default&#39;=> 0, &#39;comment&#39;=>&#39;喜欢的文章数&#39;]);
        $user->addColumn(&#39;baby_birthday&#39;, &#39;date&#39;, [&#39;null&#39;=>true, &#39;comment&#39;=>&#39;宝宝生日&#39;]);
        $user->addColumn(&#39;baby_sex&#39;, &#39;boolean&#39;, [&#39;null&#39;=>true, &#39;comment&#39;=>&#39;宝宝性别&#39;]);
        $user->addColumn(&#39;last_login&#39;, &#39;datetime&#39;, [&#39;null&#39;=>true, &#39;comment&#39;=>&#39;最后登陆日期&#39;]);
        $user->save();
    }
Salin selepas log masuk

7 Secara lalai, id yang ditambah secara automatik akan ditambahkan sebagai kunci utama Laksanakan vendor php/bin/phinx migrate

8. Mulakan dataLaksanakan php vendor/bin/phinx seed:create CategorySeeder

Sistem mencipta secara automatik . /db/seeds/CategorySeeder.php

9 Ubah suai CategorySeeder.phpLaksanakan vendor php/bin/phinx seed:run dan semua. Seed

10 Jika anda ingin menjalankan Seed yang ditentukan, anda perlu menentukannya dengan parameter -s php vendor/bin. /phinx seed:run -s CategorySeeder

11 Kemas kini struktur jadualApabila anda perlu mengemas kini struktur jadual, anda perlu. create another migrate

Execute php vendor/bin/phinx create ChangeArtist

Kemudian tulis kandungan yang perlu dikemas kini kepada change function

Akhirnya laksanakan vendor php /bin/phinx migrate
public function change() {
        $this->execute(&#39;alter table resource drop column artist ;&#39;);
        $resource = $this->table(&#39;resource&#39;);
        $resource->addColumn(&#39;artist&#39;, &#39;string&#39;, [&#39;limit&#39;=>128, &#39;default&#39;=>&#39;&#39;]);
        $resource->update();
    }
Salin selepas log masuk

Migrate yang dilaksanakan sebelum ini tidak akan dilaksanakan, hanya Bahagian yang dikemas kini akan dilaksanakan.

12. Rollback

php vendor/bin/phinx rollback
Salin selepas log masuk

13 🎜>Jana failphinx amat sesuai untuk pembangunan, ujian, penyegerakan pangkalan data dalam talian bagi maklumat medan, maklumat data, penjanaan dan penyegerakan data ujian, dsb., jadi ia amat sesuai untuk proses pembangunan pasukan Gunakan, terutamanya untuk projek baharu, selagi anda berkeras untuk menggunakan phinx untuk penggunaan bebas pada permulaan projek, maka setiap kali maklumat jadual pangkalan data ditukar, ahli pasukan boleh menyegerakkan kod melalui git atau svn dan kemudian laksanakan perintah pelaksanaan yang disebutkan di atas Segerakkan maklumat jadual perpustakaan untuk mengelakkan kebosanan dan ralat menyegerakkan maklumat jadual perpustakaan dalam persekitaran pembangunan yang berbeza semasa pembangunan tradisional.

php vendor/bin/phinx seed:create UserSeeder
php vendor/bin/phinx seed:run -e product
Salin selepas log masuk
Terdapat item konfigurasi "default_migration_table" => "phinxlog" dalam phinx.php Perubahan ini juga merupakan langkah untuk memastikan ia tidak dilaksanakan berulang kali, jadi anda tidak perlu risau tentang kehilangan atau mengulangi pelaksanaan arahan.

Pembelajaran yang disyorkan: "
<?php
use Phinx\Seed\AbstractSeed;
class UserSeeder extends AbstractSeed {
    /**
     * 插入数据
     */
    public function run() {
        $data = array(
          array(
              &#39;id&#39;    => 1,
          ),
          array(
              &#39;id&#39;    => 2,
          )
        );
        $posts = $this->table(&#39;users&#39;);
        $posts->insert($data)->save();
    }
}
Salin selepas log masuk
Tutorial Video PHP

"

Atas ialah kandungan terperinci Ajar anda cara menggunakan alat pemindahan pangkalan data PHP 'Phinx'. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
php
sumber:Laravel技术社区公众号
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan