yii2 Already at ''. Nothing needs to be done. -- Что делаеть если откат миграции не помогает

Ситуация

Если вы забыли убрать в ветке down вашей миграции:

 return false; 

и запустили её -- то все что нужно откатиться, но будет брошено сообщение об ошибке в конце выполнения отката, это приведёт к тому, что заново накатить миграцию просто так вы уже не сможете, получая сообщение:

 Already at 'm...'. Nothing needs to be done.

Что делать

  • Если ну для начала можно попробовать убрать return false; и ещё раз откатить миграцию -- это хорошо сработает, если там выполняется действие, которое можно выполнить второй раз. после предыдущего "неудачного" (а на самом деле удачного) отката.
  • Если же повторный откат приводит к ошибке (например, не получается удалить уже удалённую колонку), то наиболее простой способ следующий:
    1. закомментируйте весь код метода down (всю внутренность -- чтобы он был пустым)
    2. откатите миграцию (это полюбому пройдёт успешно. раз ничего делать не надо, а в журнале миграции будет отмечено, что она откачена -- а значит, теперь можно и заново накатить её без ошибки)
    3. раскомментируйте код метода down()

Key Words for FKN + antitotal forum (CS VSU):