Laravel Migration to change table name

前端 未结 4 934
挽巷
挽巷 2020-12-08 05:57

I want to change my two table name in the Laravel, so do I have to manually change the table name or it can be possible through migration.

4条回答
  •  孤街浪徒
    2020-12-08 06:39

    You can rename table like that

    Schema::rename('old_table', 'new_table');
    

    BUT be careful if you have foreign keys, indexes and unique-s.

    you will not be able to deleted them after renaming, like thiat

    Schema::table('new_table', function (Blueprint $table) {
       $table->dropForeign(['transaction_id']);
     });
    

    because they will have old names and these names have table name in them.

    Thus, I recommend deleting foreign keys and other stuff first

     Schema::table('old_table', function (Blueprint $table) {
        $table->dropForeign(['transaction_id']);
     });
    
     Schema::rename('old_table', 'new_table');
    
     Schema::table('new_table', function (Blueprint $table) {
        $table->foreign('transaction_id')->references('id')->on('transactions');
     });
    

提交回复
热议问题