При создании миграции иногда встречается ошибка типа того:
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');