Исключение миграции: изменить таблицу -> Столбец уже существует: 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