迁移异常:alter table --> Column already exists: 1060 Duplicate column name

Migration exception: alter table --> Column already exists: 1060 Duplicate column name

完成后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

它不起作用。如何在不需要转储整个数据库并成功迁移数据库的情况下消除此错误?

提前致谢。

如果已应用迁移,您可以将其设置为已迁移,这样 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