Laravel の次のチュートリアルコラムでは、laravel の強化されたスキーマデータ移行について紹介します。
コンセプト:会社のプロジェクトを再構築するとき、新しい移行クラスを作成するたびに、データ テーブル、
新しい delete_at、created_at、updated_at、last_operator、last_operator_id を指定する必要があります。
これら 5 つのフィールドには、各行の削除時刻、新規時刻、変更時刻、および最後の演算子名が記録されます。 id,
から db_extra オブジェクトを取得します。
2. 次に、app/providers/ の下に DB サーバー プロバイダーを追加して、$app['db_extra'] サービス コンテナがこのオブジェクトを取得する方法を定義します 3. 以下の図 2 の内容を分析します。 ->single Single インスタンスは、図 3 に示すように、db_extra クラスの生成に使用されるファクトリ クラスです。このファクトリ クラスは、次の図 4 に配置されます。このファクトリ クラスは、システムの運用ファクトリ クラスを継承し、その機能を変更します。たとえば、今回は、接続された mysql サービス接続オブジェクトの場合、図 4 に示すように、定義した msyql 接続オブジェクトをインスタンス化させます 5. 次に、この MysqlExtraConnection.php クラスで、親クラスのメソッドを再度オーバーライドします。新しい移行クラスを追加するコマンドを実行するときに、 、定義した移行テンプレートに従って移行ファイルを作成します #6。次に、図 6に示すように、デフォルトで追加するフィールドを定義します。
#7. 次に、make:app_migration というコマンドを定義します。以下の 2 番目の図では、MigrationCreatorExt が独自の新しいクラスの挿入に依存していることに注意してください。 . このクラスは何に使用されますか?新しい移行ファイル #8 に文字を出力するために使用されます。以下に示すように、テンプレートを作成して変更します#9. create.stub テンプレートでは、デフォルトで定義したスキーマ クラスを呼び出すようにし、フィールドがデフォルトで追加されたことをコメントに記録しました
##10. これで完了です。設定は少し面倒ですが、拡張するのはとても簡単です。何か良い方法はありませんか? コメントで議論してくれてありがとう、へへ
以上がlaravelの強化されたスキーマデータ移行についての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。