アプリケーションは進化し続け、要件は変化し続けるため、開発プロセス中にデータベースの変更、移行、更新が必要になることがよくあります。ただし、データベースを更新する過程で、慎重に検討して保守しないと、データの競合やデータの損失などの一連の問題が発生する可能性があります。これらの問題を効果的に解決するには、専門的なデータベース移行ツールを使用してこれらの操作を完了する必要があります。
ThinkPHP6 は、Web アプリケーションを構築するための人気のある PHP フレームワークであり、データベース移行など、多くの便利な機能とツールを提供します。この記事では、ThinkPHP6のデータベース移行機能の使い方を紹介します。
1.データベース移行とは何ですか?
データベース移行とは、アプリケーションの開発および運用中にデータベース構造を更新および変更するプロセスを指します。つまり、データベースの移行を通じて、データベース テーブルの追加、削除、名前変更、およびフィールドの追加、変更、削除が可能になります。
ThinkPHP6 では、データベース移行ツールは主に、移行クラスと充填クラスという 2 つの概念を通じて実装されます。
2. データベース移行の使用方法は?
ThinkPHP6 でデータベース移行を使用するには、まず移行クラスを作成する必要があります。マイグレーションクラスは、up メソッドと down メソッドの 2 つのメソッドを含む PHP クラスです。
up メソッドは、データベース テーブルやフィールドの作成、変更、削除などのデータベース移行操作を実行するために使用されます。 down メソッドは、移行操作をロールバックする、つまり up メソッドによって実行された操作を元に戻すために使用されます。
以下は、users という名前のデータベース テーブルを作成するための移行クラスの簡単な例です:
<?php use thinkmigrationdbColumn; use thinkmigrationMigrator; class CreateUsersTable extends Migrator { public function up() { $table = $this->table('users', ['engine' => 'InnoDB', 'id' => false, 'primary_key' => 'id']); $table->addColumn('id', 'integer', ['signed' => false, 'identity' => true]) ->addColumn('name', 'string', ['limit' => 32]) ->addColumn('email', 'string', ['limit' => 128]) ->addColumn('password', 'string', ['limit' => 60]) ->addColumn('created_at', 'datetime') ->addColumn('updated_at', 'datetime') ->create(); } public function down() { $this->table('users')->drop(); } }
上記の移行クラスでは、最初に up メソッドで users という名前のデータベース テーブルを作成します。ユーザー用のデータベース テーブルを作成し、いくつかのフィールドを追加します。次に、down メソッドでテーブルを削除します。
移行クラスを作成した後、php think merge コマンドを使用して移行操作を実行する必要があります。移行がまだ実行されていない場合は、まず php think Migrate:install コマンドを使用して、データベース移行用に関連テーブルを初期化する必要があります。
次に、php think merge:status コマンドを使用して、現在のすべての移行ステータスを表示できます。この時点では、作成した移行クラスがまだ実行されていないことがわかります。
これで、php think merge:run コマンドを使用して移行操作を実行できます。この時点で、システムが作成したばかりの移行クラスを実行し、デバッグ情報を出力することがわかります。
実行後、php think merge:status コマンドを再度使用して、現在のすべての移行ステータスを表示できます。この時点で、作成した移行クラスが正常に実行され、users という名前のテーブルがデータベースに作成されたことが確認できるはずです。
作成したばかりの移行をロールバックする必要がある場合は、php think Mitore:rollback コマンドを使用できます。このコマンドは、実行された最後の移行操作をロールバックします。
さらに、php think merge:reset コマンドを使用して、実行されたすべての移行操作をロールバックすることもできます。
3. フィラー クラスの使用方法は?
移行クラスに加えて、ThinkPHP6 はクラス充填と呼ばれる機能も提供します。 fill クラスは、テスト データまたはデフォルト データを既存のデータベース テーブルに追加するために使用されます。
移行クラスと同様に、充填クラスも、up メソッドと down メソッドの 2 つのメソッドを含む PHP クラスです。
これは、users という名前のデータベース テーブルにテスト データを追加する簡単な fill クラスの例です:
<?php use thinkmigrationSeed; class AddTestUsers extends Seed { public function run() { $data = [ [ 'name' => '张三', 'email' => 'zhangsan@test.com', 'password' => password_hash('123456', PASSWORD_DEFAULT), 'created_at' => date('Y-m-d H:i:s'), 'updated_at' => date('Y-m-d H:i:s'), ], [ 'name' => '李四', 'email' => 'lisi@test.com', 'password' => password_hash('123456', PASSWORD_DEFAULT), 'created_at' => date('Y-m-d H:i:s'), 'updated_at' => date('Y-m-d H:i:s'), ], [ 'name' => '王五', 'email' => 'wangwu@test.com', 'password' => password_hash('123456', PASSWORD_DEFAULT), 'created_at' => date('Y-m-d H:i:s'), 'updated_at' => date('Y-m-d H:i:s'), ], ]; $this->table('users')->insert($data)->save(); } public function down() { $this->execute('TRUNCATE TABLE users;'); } }
上記の fill クラスでは、up メソッドで使用します。insert メソッドは 3 つの部分を追加します。テストデータをデータベーステーブルにコピーします。次に、down メソッドで、execute メソッドを使用して、これら 3 つのテスト データを削除します。
充填クラスの実行方法は移行クラスの実行方法と似ており、php think seed:run コマンドを使用して充填クラスの up メソッドを実行できます。クラスの充填タスクをロールバックする必要がある場合は、php think seed:rollback コマンドを使用できます。
4. 概要
この記事では、データベース移行と ThinkPHP6 の入力方法を紹介し、移行クラスの作成方法とクラスの入力方法、および移行の実行とロールバックの方法をサンプル コードを通じて示します。 . および充填操作。アプリケーションを開発および保守していて、データベースを変更および更新する必要がある場合は、必ずこの専門的なデータベース移行ツールを使用して、データのセキュリティと正確性を確保してください。
以上がThinkPHP6 でデータベース移行を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。