doctrine:generate-migrations-diff做了什么反对?

时间:2010-10-07 23:21:44

标签: doctrine

此函数旨在基于旧模式和新模式之间的差异构建逻辑迁移类。

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

我的问题首当其冲的是我的架构出现问题导致迁移失败(我有一个名为“group”的列)...在我的架构中更改名称后...确保迁移生成和迁移尝试将不变,因为先前的迁移尝试只是部分完成。

所以,我一直想把一切都恢复到一个“原始”的状态,好像从来没有过迁移一样,我希望当前的模式/数据库被视为版本0,并且创建了新的迁移类

但是,手动重置我的数据库并擦除迁移类是不行的,并且生成的diff类仍然坚持删除不再存在的表。

所以,我假设有一个缓存文件在哪里与旧的架构数据进行比较?

感谢您的帮助。

1 个答案:

答案 0 :(得分:4)

啊......答案就在这里:

Extra changeColumns in Doctrine generate-migrations-diff

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

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

这对我有用。