Ошибка миграции OctoberCMS/Laravel, Identifier name is too long — deadblog.ru

Ошибка миграции OctoberCMS/Laravel, Identifier name is too long

При создании миграции иногда встречается ошибка типа того:

SQLSTATE[42000]: Syntax error or access violation: 1059 Identifier name 
'author_plugin_category_property_category_id_property_id_primary' is too long (SQL: alter 
table `author_plugin_category_property` add primary key 
`author_plugin_category_property_category_id_property_id_primary`(`category_id`,`property_id`))
Schema::create(self::TABLE_NAME, function (Blueprint $table) {
    $table->engine = 'InnoDB';
    $table->integer('category_id')->unsigned();
    $table->integer('property_id')->unsigned();
    $table->primary(['category_id', 'property_id']);
});

Появляется она из-за того, что ограничение на идентификатор в mysql 64 символа, вот тут подробнее про это — http://dev.mysql.com/doc/refman/5.5/en/identifiers.html.

Исправить очень просто: при создании primary-ключей, надо вторым аргументом добавить наименование ключа:

$table->primary(['category_id', 'property_id'], 'author_plugin_category_property_index');

Добавить комментарий

Ваш адрес email не будет опубликован.