平凡エンジニアによる平凡ブログ

平凡インフラエンジニアがスキルアップを目指してプログラミングやクラウドやサーバといったインフラのアウトプットをしていきます!

【PHP】Laravel にてテーブル名を変更したい!

今回のテーマ

Laravelにてマイグレーションファイル作成時に名称を間違えてしまい テーブル名を変更したい時の手順を記載します。

環境

Laravel 8.20.1
PHP 7.3.11

目次

  • テーブル名変更するまで
  • まとめ

テーブル名変更まで

1 まずは当然マイグレーションファイルをロールバックする

php artisan migrate:rollback

2 変更するためのマイグレーションファイルを作成する

ここではitemsという名称からcartsというテーブルに変更するように
以下のコマンドをうつ

php artisan make:migration rename_items_to_carts_table
3 作成されたマイグレーションの書き換え

作成されたマイグレーションファイルのメソッドを
Schemaクラスのrenameメソッドに書き換える。 変更前は別のメソッドの記載があるので注意

※変更前は以下のようなメソッド
Schema::table('carts', function (Blueprint $table)

use Illuminate\Support\Facades\Schema;

// 中略

public function up()
    {
        Schema::rename('items','carts');
    }


public function down()
   {
       Schema::rename('carts','items');
    }
// rollbackされた場合は元の名前に戻すためupメソッドとは逆の記載になる

まとめ

新しく作成されたマイグレーションファイルのメソッドを書き換えないと
思わなくてそのままマイグレーションしてしまったので、認識しておきたいです。

以下のドキュメントを参考にしました。

マイグレーション 8.x (再翻訳中)Laravel