Я пытаюсь обновить свою базу данных этими командами
php bin/console make:migration
этот ответный успех
Но когда я пытаюсь
php bin/console doctrine:migrations:migrate
У меня такая ошибка:
WARNING! You have 5 previously executed migrations in the database >>that are not registered migrations.
>> 2018-12-17 10:42:04 (20181217104204)
>> 2018-12-17 13:19:24 (20181217131924)
>> 2018-12-17 13:40:58 (20181217134058)
>> 2018-12-18 10:41:38 (20181218104138)
>> 2018-12-18 13:15:49 (20181218131549)
Дело в том, что перечисленная здесь база данных отсутствует в моей таблице миграций из моей базы данных, и их также нет в моей папке миграции.
Как я могу удалить эти неправильные миграции? Спасибо.
Нет, потому что, когда я пытаюсь удалить его: не удалось найти версию миграции 20181217104204 Я не знаю, почему я вижу миграции, которых нет в моей папке или базе данных :(
просто чтобы уточнить: в своей базе данных вы проверяете таблицу migration_versions?




Это год назад, но у меня несколько раз возникали проблемы, когда я удалял старые файлы миграции, потому что они не актуальны или по какой-то другой причине и имели ту же проблему. Я думаю, что правильный способ справиться с этим - напрямую удалить ссылки из таблицы.
php bin/console doctrine:query:sql "delete from migration_versions where version = '2020181217104204'";
РЕДАКТИРОВАТЬ - более новые версии Symfony теперь используют таблицу «doctrine_migration_versions».
php bin/console doctrine:query:sql "delete from doctrine_migration_versions where version = '2020181217104204'";
Etc..
Обнаружена та же проблема: я ранее скопировал уже выполненную миграцию во вновь созданную таблицу миграции (из-за обновления доктрины).
Переименование всех названий версий, как показано ниже, спасло день: 20190408092436 -> DoctrineMigrations \ Version20190408092436
Это было именно то, что я искал! После недавнего обновления до Symfony 4 пакет миграций теперь требует нового именования входов в таблице миграций. Ваше здоровье !
Разве ты не можешь просто сделать
$ php bin/console doctrine:migrations:version 20181217104204 --deleteи так далее для всех пяти?