在使用 symfony/maker-bundle v1.43.0 的 Symfony 5.4 项目中,我遇到以下问题:make:migration 命令向行结构添加了已弃用的注释,这实际上导致数据库环境失败
"Unknown column type "json_array" requested..."
数据库是在 Symfony 项目从 3.x.x 升级到 5.4 期间迁移的。为了修复提到的“未知列”错误,我删除了注释“(DC2Type:json_array)”,因为这种类型现在已弃用,并且不再需要注释。在新的迁移中,我删除了评论
$this->addSql('ALTER TABLE my_table CHANGE my_row my_row LONGTEXT NOT NULL);
我还通过删除创建该注释的部分来更改旧迁移(创建此表的第一个迁移)。所以在旧迁移中我改变了
$this->addSql('CREATE TABLE my_table (..., my_row LONGTEXT NOT NULL COMMENT \'(DC2Type:json_array)\', ...);
到
$this->addSql('CREATE TABLE my_table (..., my_row LONGTEXT NOT NULL, ...);
我这样做是因为否则在应用迁移时从基础设置项目时的数据库创建过程总是会失败,因为它将无法使用旧式注释创建表。
但是 - 当我现在创建新的迁移时,制造商系统总是会自动将缺少的注释再次添加到表中
$this->addSql('ALTER TABLE my_table CHANGE my_row my_row LONGTEXT NOT NULL COMMENT \'(DC2Type:json)\'');
所以我总是必须记住并小心从我的迁移中删除这个自动生成但不想要的语句 - 这可能迟早会失败。我怎样才能教制造商系统不再添加此评论?我知道更改位于迁移堆栈中某处的旧迁移似乎不是正确的做法,但由于整个迁移堆栈无法再用它成功执行,我不知道还有什么可做的。任何有关这方面的想法都非常感谢。