Ранее выполненная миграция не является зарегистрированной миграцией

Я пытаюсь обновить свою базу данных этими командами

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)

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

Как я могу удалить эти неправильные миграции? Спасибо.

Разве ты не можешь просто сделать $ php bin/console doctrine:migrations:version 20181217104204 --delete и так далее для всех пяти?

D4V1D 09.01.2019 09:32

Нет, потому что, когда я пытаюсь удалить его: не удалось найти версию миграции 20181217104204 Я не знаю, почему я вижу миграции, которых нет в моей папке или базе данных :(

Minirock 09.01.2019 09:40

просто чтобы уточнить: в своей базе данных вы проверяете таблицу migration_versions?

Bernard Pagoaga 09.01.2019 12:03
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Symfony Station Communiqué - 17 февраля 2023 г
Symfony Station Communiqué - 17 февраля 2023 г
Это коммюнике первоначально появилось на Symfony Station , вашем источнике передовых новостей Symfony, PHP и кибербезопасности.
Управление ответами api для исключений на Symfony с помощью KernelEvents
Управление ответами api для исключений на Symfony с помощью KernelEvents
Много раз при создании api нам нужно возвращать клиентам разные ответы в зависимости от возникшего исключения.
6
3
9 630
2

Ответы 2

Это год назад, но у меня несколько раз возникали проблемы, когда я удалял старые файлы миграции, потому что они не актуальны или по какой-то другой причине и имели ту же проблему. Я думаю, что правильный способ справиться с этим - напрямую удалить ссылки из таблицы.

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 пакет миграций теперь требует нового именования входов в таблице миграций. Ваше здоровье !

RyanH 23.03.2021 15:43

Другие вопросы по теме