学说:生成迁移差异对什么有影响?

use*_*703 5 doctrine

此功能旨在根据新旧模式之间的差异构建学说迁移类。

那么,系统所针对的旧模式存储在哪里?我在一个 symfony 项目中,我的配置中只有一个 schema.yml。

我的问题首当其冲是我的架构存在问题导致迁移失败(我有一个名为“组”的列)......在我的架构中更改名称后......确保迁移生成和迁移尝试总是会出错,因为之前的迁移尝试仅部分完成。

因此,我一直想将所有内容都设置回“原始”状态,就好像从未发生过迁移一样,我希望将当前模式/数据库视为版本 0,并制作新的迁移类。

但是,手动重置我的数据库并清除迁移类不起作用,并且生成的差异类坚持删除不再存在的表。

所以,我假设某处有一个缓存文件,其中包含与之比较的旧模式数据?

谢谢你的帮助。

use*_*703 4

啊……答案就在这里:

Doctrine 中的额外变更列生成-迁移-差异

它不是与缓存的 schema.yml 进行比较,而是与您的模型类进行比较。

因此,“重置”迁移过程的解决方案是手动同步数据库和模型(可能通过将 schema.yml 重置为旧结构,重新生成模型,然后手动恢复数据库),然后全部返回新的架构元素,然后运行generate-migrations-diff。

这对我有用。