この記事では、PHP のデータベース移行ツールである Phinx に関する関連知識を共有します。Phinx は、開発、テスト、オンライン データベース同期フィールド情報、データ情報、データの生成と同期に特に適しています。テスト データ。お待ちください。皆さんのお役に立てば幸いです。
#ドキュメントのアドレス: https://tsy12321.gitbooks.io/phinx-doc/content1. インストール
composer require nhzex/think-phinx
2.
php vendor/bin/phinxを実行します。php Vendor/bin/phinx init を直接実行して、設定ファイルを生成します
もう 1 つの方法は、php ファイルを直接使用して構成ファイルを作成することです。php ベンダー/bin/phinx init を直接実行して構成ファイルを生成します。もう 1 つの方法は、php ファイルを直接使用することです。 php ファイルを使用して、設定ファイル File
3 を作成します。phinx.php を使用して、
<?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 を設定します。実行します。 php Vendor/bin/phinx status 接続状態を確認します
#5. php Vendor/bin/phinx create migrationを実行します
6. /db/migrations/20180310020523_migration.phpが作成されました。このファイルを編集し、データベース作成コンテンツを追加します。
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. デフォルトでは、自動インクリメントされる ID が主キーとして追加されます。
php ベンダー/bin/phinx 移行を実行します
8. データを初期化します
php Vendor/bin/phinx seed:create categorySeederを実行します
システムは自動的に作成された ./db/seeds/CategorySeeder.php を作成します# 9.CategorySeeder.phpを変更します
#php Vendor/bin/phinx seed:run とすべての Seed を実行します
10. 実行したい場合 指定したシードを -s パラメータで指定する必要がありますphp Vendor/bin/phinx seed:run -s categorySeeder
11. テーブル構造を更新するテーブル構造を更新する必要がある場合は、移行を作成する必要がありますExecute php Vendor/bin/phinx create ChangeArtist
次に、更新する必要があります。内容は変更関数に書き込まれます。public function change() { $this->execute('alter table resource drop column artist ;'); $resource = $this->table('resource'); $resource->addColumn('artist', 'string', ['limit'=>128, 'default'=>'']); $resource->update(); }最後に、php Vendor/bin/phinx maigrateを実行します。以前に実行された merge は実行されず、更新された部分のみが実行されます。 12. ロールバック
php vendor/bin/phinx rollback13. データ入力
php vendor/bin/phinx seed:create UserSeeder php vendor/bin/phinx seed:run -e productGenerate files
<?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(); } }phinx は、開発、テスト、オンライン データベース同期フィールド情報、データ情報、テスト データの生成と同期などに特に適しているため、チーム開発プロセスでの使用に特に適しています。特に新しいプロジェクトの場合、プロジェクトの開始時に独立したデプロイメントに phinx を使用することを主張している限り、データベース テーブル情報が変更されるたびに、チーム メンバーは git または svn を介してコードを同期し、実行を実行できます。前述のコマンドを使用してデータベース テーブル情報を同期することで、従来の開発中に異なる開発環境間でライブラリ テーブル情報を同期する煩わしさやエラーを回避できます。 phinx.phpに「default_migration_table」=>「phinxlog」という設定項目があり、変更内容がここに記録されますが、これは繰り返し実行されないための対策でもあるので、心配する必要はありませんコマンドの実行の喪失または繰り返しについて。 推奨学習: 「
PHP ビデオ チュートリアル
」以上がPHPデータベース移行ツール「Phinx」の使い方を教えますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。