Не могу удалить составной уникальный индекс в MySQL - PullRequest
0 голосов
/ 30 июня 2018

У меня есть приложение 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 не ссылается ни одна другая таблица или ключ. (Примечание: некоторые ключи, составляющие уникальный ключ , являются внешними ключами, но я не думаю, что это должно быть проблемой.)

Чего мне не хватать?

...