[Laravel]複数テーブルを更新するマイグレーションファイルの作成

経緯

複数のテーブルを更新するマイグレーションファイルを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');
            });
        }
    }

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です