Rumah >pembangunan bahagian belakang >tutorial php >Ajar anda cara menggunakan alat pemindahan pangkalan data PHP 'Phinx'
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.
Alamat dokumen: https://tsy12321.gitbooks.io/phinx-doc/content
Pemasangan
composer require nhzex/think-phinx
2. Laksanakan
php vendor/bin/phinx
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( 'DB_HOST' => 'localhost', 'DB_NAME' => 'root', 'DB_USER' => 'root', 'DB_PWD' => '', ); $settings = $config; #phinx.php <?php require 'db_config.php'; 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" ) ) );
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('user'); $user->addColumn('open_id', 'string', ['limit'=>64]); $user->addColumn('register_time', 'timestamp', ['default' => 'CURRENT_TIMESTAMP']); $user->addColumn('favorite_music', 'integer', ['default'=> 0, 'comment'=>'喜欢的音乐']); $user->addColumn('favorite_vedio', 'integer', ['default'=> 0, 'comment'=>'喜欢的视频数']); $user->addColumn('favorite_article', 'integer', ['default'=> 0, 'comment'=>'喜欢的文章数']); $user->addColumn('baby_birthday', 'date', ['null'=>true, 'comment'=>'宝宝生日']); $user->addColumn('baby_sex', 'boolean', ['null'=>true, 'comment'=>'宝宝性别']); $user->addColumn('last_login', 'datetime', ['null'=>true, 'comment'=>'最后登陆日期']); $user->save(); }
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 migratepublic function change() { $this->execute('alter table resource drop column artist ;'); $resource = $this->table('resource'); $resource->addColumn('artist', 'string', ['limit'=>128, 'default'=>'']); $resource->update(); }
Migrate yang dilaksanakan sebelum ini tidak akan dilaksanakan, hanya Bahagian yang dikemas kini akan dilaksanakan.
12. Rollback
php vendor/bin/phinx rollback
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 productTerdapat 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( 'id' => 1, ), array( 'id' => 2, ) ); $posts = $this->table('users'); $posts->insert($data)->save(); } }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!