やりたいこと
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の作成、変更の履歴が辿れるであろう。
コメント