Ключ Foregin Имя индекса Ошибка размера в миграции php laravel

Я получаю сообщение об ошибке во время миграции, которая упоминается ниже:

SQLSTATE[42000]: Syntax error or access violation: 1059 Identifier name 'port_call_departure_time_readings_port_call_departure_time_condition_id_foreign' is too long (SQL: alter table port_call_departure_time_readings add index port_call_departure_time_readings_port_call_departure_time_condition_id_foreign(port_call_departure_time_condition_id)):

Допустимый размер имени индекса FK — 59, и я проверял это во время миграции.
Но оригинальный размер имени индекса FK составляет 79.

Не могли бы вы объяснить, как лучше всего назначить имя индекса FK в таблице port_call_departure_time_readings для поля port_call_departure_time_condition_id?

0

Решение

Попробуй это $table->index('column','index_name')

2

Другие решения

foreign() Метод принимает имя индекса в качестве второго параметра. Например:

$table->foreign('user_id', 'your_index_name_foreign')
->references('id')->on('users');

Когда вы не указываете имя, Laravel по умолчанию объединяет имена таблиц и столбцов. В некоторых случаях имя по умолчанию длиннее, чем позволяет ваша база данных для индекса.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector