За последние 24 часа нас посетили 17826 программистов и 1568 роботов. Сейчас ищут 1254 программиста ...

Порядок запуска миграций: Error 1215

Тема в разделе "Laravel", создана пользователем Сереганек, 28 окт 2017.

  1. Сереганек

    Сереганек Активный пользователь

    С нами с:
    18 янв 2017
    Сообщения:
    333
    Симпатии:
    27
    Создал несколько таблиц с зависимостями.
    Когда выполняю команду migrate, то получаю ошибку:
    General error: 1215 Cannot add foreign key constraint
    Похоже, дело в том, что сначала выполняется миграция, которая зависит от таблицы, которая будет создана только лишь в следующей миграции. Т.е. таблицы, на которую ссылается внешний ключ пока еще нет. Как лучше поступить в данном случае? Запускать по-одной, пересоздать заново миграции в нужной последовательности или есть другой способ решения?
     
  2. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.583
    Симпатии:
    1.761
    Миграции запускаются в порядке создания. Поэтому в названиях файлов миграций и присутствует дата. Но, выполняются только те, о которых нет записи в базе данных.
     
    Сереганек нравится это.
  3. Сереганек

    Сереганек Активный пользователь

    С нами с:
    18 янв 2017
    Сообщения:
    333
    Симпатии:
    27
    Т.е. мне достаточно поменять даты в именах. Да, мог бы догадаться )) Спасибо!
     
  4. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.583
    Симпатии:
    1.761
    Ну достаточно ли - я не пробовал. Попробуй
     
    Сереганек нравится это.
  5. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.108
    Симпатии:
    1.243
    Адрес:
    там-сям
    Так как сбой уже произошел, база может быть в состоянии где-то посередине миграции. Возможно придётся подчистить в базе вручную, затем посмотреть как накатываются/откатываются миграции.
    --- Добавлено ---
    И да, в процессе исправления всегда есть риск накосячить ещё больше. Бэкапы и терпение!
    Удачи!
     
    Сереганек нравится это.
  6. Сереганек

    Сереганек Активный пользователь

    С нами с:
    18 янв 2017
    Сообщения:
    333
    Симпатии:
    27
    Да, я базу вычистил. Мне просто было интересно есть ли какой-то разумный способ как поменять порядок запуска миграций. Мне, например, не понятно, почему при запуске миграций нет автоматической проверки связей между таблицами. Если есть связь, значит запускать сначала миграцию, от которой зависят, а затем уже зависящие от нее. Походу такая проблема возникла только у меня из-за недостачи опыта )))
     
  7. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.583
    Симпатии:
    1.761
    Ну ты многого хочешь от разработчиков фреймворка. Они что, должны твои исходники шерстить, чтоб смотреть, какие у тебя там связи? Или сначала в памяти строить модель миграции? Делать больше нефига выполнять такую сложнейшую работу вместо мозга программиста