Laravel - изменено имя/класс файла миграции, migrate:reset по-прежнему ищет старый класс

Я изменил имя файла миграции, обновил имя класса, запустил 'composer dump-autoload', а затем запустил 'php artisan migrate:reset'.

Когда я запускаю это, я получаю сообщение об ошибке:

[Symfony\Component\Debug\Exception\FatalErrorException] Класс OldClassName не найден

Когда я ищу весь проект для этого имени класса, все, что я нахожу, это его упоминание в журналах ошибок. Если я войду в «autoload_classmap.php», строка с именем моего класса и именем файла миграции будет правильной (я скопировал и вставил их, чтобы убедиться).

Во время гугления люди предложили запустить несколько других команд, которые у меня уже есть:

php artisan clear-cache
Vagrant reload
composer self-update
composer update

Как еще я должен решить эту проблему?


person Logik22    schedule 18.07.2015    source источник


Ответы (2)


Нашел проблему.

Проблема заключалась в том, что я выполнил миграцию, поэтому моя старая таблица создается с использованием моего старого имени/класса/и т. д. таблицы. Затем я изменил имя/класс файла миграции и попытался php artisan migrate:refresh. Когда вы делаете refresh, он откатывает все ваши таблицы, а затем повторно переносит их, поэтому, когда он пытался откатить мою старую таблицу, он не нашел ее (потому что я уже изменил имя) и взбесился. Чтобы исправить это, мне пришлось переименовать его в исходное имя, запустить php artisan migrate:rollback (все таблицы удалены), а затем запустить php artisan migrate:refresh, чтобы перезагрузить все таблицы, включая мою таблицу, с новым именем.

person Logik22    schedule 18.07.2015

Я столкнулся с этой же проблемой и решил ее, зайдя в таблицу миграции базы данных и удалив имя старой миграции.

Проблема с ответом выше заключалась в том, что мне приходилось хранить файл миграции с неправильным именем.

person coderp    schedule 07.09.2017