Исключение миграции: изменить таблицу -> Столбец уже существует: 1060 Повторяющееся имя столбца

После выполнения php flow flow:doctrine:migrate... Я получил следующую ошибку:

An exception occurred while executing 'ALTER TABLE user ADD gdisplayname LONGTEXT DEFAULT NULL, ADD tdisplayname LONGTEXT DEFAULT NULL, ADD fdisplayname LONGTEXT DEFAULT NULL': SQLSTATE[42S21]: Column already exists: 1060 Duplicate column name 'gdisplayname'

Я попытался удалить уже существующий столбец, используя:

ALTER TABLE user DROP COLUMN gdisplayname;

а затем повторное использование php flow flow:doctrine:migrate

Это не работает. Как я могу удалить эти ошибки без необходимости выгрузки всей базы данных и успешного переноса базы данных?

Заранее спасибо.

2 ответа

Решение

Если миграция уже применена, вы можете установить ее как перенесенную, чтобы Flow не пытался применить ее снова. Сначала проверьте, какая миграция вызывает ошибку

./flow doctrine:migrationstatus

Затем установите его как перенесенный:

./flow:doctrine:migrationversion --version <version> --add

Только что попробовал ответить @lorenz, и есть небольшая разница в синтаксисе, если вы используете консоль Symfony для обеих команд.

Чтобы проверить статус миграции:

      php bin/console doctrine:migrations:status 

Чтобы установить как перенесенный:

       php bin/console doctrine:migrations:version 'DoctrineMigrations\<version>' --add
Другие вопросы по тегам