経緯
複数のテーブルを更新するマイグレーションファイルを1つのファイルで行いたい
手順
1. マイグレーションファイルを作成する
ファイル手動作成、または、コマンドでマイグレーションファイルを作成
名称はわかりやすい名前で。
本来だったら、「–table=testA」みたいなオプションをつけて、どのテーブルって指定するが、
今回は、複数のテーブルに更新かけたいのでなしで
php artisan make:migration change_column_A_B_C
2. マイグレーションファイルを記載する
ファイルができたら、マイグレーションファイルを記載する
以下のように、複数テーブルの記載をすればOK
サンプルは、upで更新内容を記載。
合わせて、downでロールバック時の内容も記載すること
public function up()
{
// テーブルAのテーブル名を「account」に変更
if (Schema::hasTable('table_a')) {
Schema::table('table_a', function (Blueprint $table) {
Schema::rename('table_a', 'account');
});
}
// テーブルBのテーブル名を「user」に変更
if (Schema::hasTable('table_b')) {
Schema::table('table_b', function (Blueprint $table) {
Schema::rename('table_b', 'user');
});
// テーブルCのカラム名「user_name」「name」に変更
if (Schema::hasTable('table_c')) {
Schema::table('table_c', function (Blueprint $table) {
$table->renameColumn('user_name', 'name');
});
}
}