У меня есть приложение Lumen 5.5 (MySQL 5.7), в котором я создаю уникальный индекс при переносе базы данных:
Schema::table('form_data', function (Blueprint $table){
$table->unique(['organisation_id', 'template_id', 'entity_type_id', 'entity_id'], 'form_data_identifier');
// name of the index is 'form_data_identifier'
});
В миграции down
я пытаюсь сбросить индекс:
Schema::table('form_data', function (Blueprint $table){
$table->dropUnique('form_data_identifier');
});
Но я получаю сообщение об ошибке:
В строке Connection.php 664:
SQLSTATE [HY000]: общая ошибка: 1553 Невозможно удалить индекс 'form_data_identifier': необходимо в ограничении внешнего ключа (SQL: изменить таблицу form_data
удалить индекс form_data_identifier
)
Я попытался выполнить запрос непосредственно в базе данных, используя синтаксисы DROP INDEX x ON y
и ALTER TABLE y DROP INDEX x
, и я получаю ту же ошибку. Я проверил, и на этот индекс form_data_identifier
не ссылается ни одна другая таблица или ключ. (Примечание: некоторые ключи, составляющие уникальный ключ , являются внешними ключами, но я не думаю, что это должно быть проблемой.)
Чего мне не хватать?