LaravelのDBのTable名をmigrationで変更する

Laravel
スポンサーリンク

やりたいこと

Laravelにおいて、migrationを利用して作成したDBのTable名を変更したい。

Laravelにおいて、Table名は基本、複数形で作成したほうが良いんですけど、(たとえばpersonじゃなくてpeople)
単数形で作成しちゃったので複数形に変更したいです。

やり方。 migration renameを使う

以下みたくします。

まずマイグレーションファイルを作成する。

php artisan make:migration rename_table_name --table=old_table_name

例)

php artisan make:migration rename_person_table --table=person

createのときと一緒っすね。

database/migrations/〜〜〜〜〜rename_person_table.php

を編集する。

    public function up()
    {
        Schema::rename('old_table_name', 'new_table_name');
    }

〜中略〜

    public function down()
    {
        Schema::rename('new_table_name', 'old_table_name');
    }

マイグレーションを実行する。

php artisan migrate

create tableしたときのファイルが残るから煩雑になりそう

このやりかただと、
以下のお悩みが湧いてくる。

Table作成時の、つまり古いテーブル名の、
2023_02_20_013355_create_old_table.php ファイルが
database/migrations/ フォルダ配下に残ったままになってます。
これは残しておいたほうが良いのでしょうか?

  • create_table
  • rename_table

2種類のファイルが存在し、なんだか煩雑になりそうです。

答え:

  • create_table
  • rename_table

2種類のファイルとも残しておく。

さすればあとでTableの作成、変更の履歴が辿れるであろう。

コメント