Ключ Foregin Имя индекса Ошибка размера в миграции php laravel - PullRequest
0 голосов
/ 09 ноября 2018

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

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?

Ответы [ 2 ]

0 голосов
/ 09 ноября 2018

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

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

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

0 голосов
/ 09 ноября 2018

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...