我从(MySQL)数据库生成了实体,然后通过运行以下语句创建了一个具有空白数据库的新(zf2)项目:
vendor/bin/doctrine-module orm:schema-tool:create
vendor/bin/doctrine-module orm:schema-tool:update --force
vendor/bin/doctrine-module orm:validate-schema
不幸的是,更新语句不断更新相同的语句:
ALTER TABLE rollen CHANGE name name VARCHAR(30) NOT NULL;
并且验证失败。数据库显示正确的列。Doctrine\DBAL\Schema\Comparator 显示了相应列的不同精度(还不太确定应该是什么)。
一些相关问题似乎不适合或不起作用。
查看 Doctrine\DBAL\Schema\Comparator 中相应的 diffColumn 函数,向我展示了元数据模式中设置的自动增量(请参阅以下注释):
@ORMGeneratedValue(strategy="IDENTITY")
精度部分似乎是此策略的一部分(尽管我仍然不明白这一点,因为自动增量 id 是 in 而不是十进制,请参阅 http://doctrine-orm.readthedocs.org/en/latest/reference/annotations-reference.html#column)