使用表結構生成工具自動生成遷移檔案我用的擴充套件包是 kitloong/laravel-migrations-generator
使用命令根據資料庫結構生成遷移檔案
php artisan migrate:generate
在遷移的時候報錯識別符號名稱太長
SQLSTATE[42000]: Syntax error or access violation: 1059 Identifier name 'circle_collections_subscribe_circle_collection_id_member_id_primary' is too long (SQL: alter table `circle_collections_subscribe` add primary key `circle_collections_subscribe_circle_collection_id_member_id_primary`(`circle_collection_id`, `member_id`))
由於沒有自定義識別符號的名稱加上表名稱又太長,拼接後的名稱這麼長確實有點過分
circle_collections_subscribe_circle_collection_id_member_id_primary
參考Laravel migration primary (or key) “Identifier name is too long”
- 找到報錯的遷移檔案
public function up() { Schema::create('circle_collections_subscribe', function (Blueprint $table) { $table->unsignedInteger('circle_collection_id'); $table->unsignedInteger('member_id')->index('circle_collections_subscribe_member_id'); $table->primary(['circle_collection_id', 'member_id']); }); }
- 由於這邊沒有定義識別符號的名稱所以會自動拼接,名稱過長導致遷移失敗。
$table->primary(['circle_collection_id', 'member_id']);
- 只需要在裡面自定義個短一點的名稱就可以了
$table->primary(['circle_collection_id', 'member_id'],"circle_collections_subscribe_primary");
本作品採用《CC 協議》,轉載必須註明作者和本文連結