Cra*_*ige 5 php database migration doctrine symfony1
我正在考虑在我的环境中部署Doctrine迁移来处理多个开发人员之间的数据库更改.我之前没有使用它们,但我已就此事进行了研究.
我唯一担心的是[据我所知],学说迁移不允许修改夹具.虽然我意识到迁移是用于原理图更改,但我认为夹具更改同样重要.
我想有参考表的装置是我的数据库(即*_type,*_source等),我觉得行添加/删除/更新也应该由这些迁移处理,因为它们同样重要任何结构变化.
如果有人能指出我在这里正确的方向,我将不胜感激.
更新
我探讨了简单地让SVN跟踪我的参考表夹具的想法,但这将是一个不可部署的解决方案.由于外键约束,表将无法被截断/重新填充.
正如您所指出的,迁移是为了促进数据库的结构更改,而不是为了根据它们来操作夹具数据。
根据我的经验,在开发应用程序时使用迁移不一定是最有帮助的方法,特别是如果开发人员 A 创建了一个新的迁移并且没有立即提交,并且开发人员 B 也创建了一个新的迁移(在不知不觉中)与开发者A的迁移冲突,然后立即签入。开发人员 A 很快就检查了他(或她)的迁移,并且出现了两个相互冲突的迁移,整个世界都崩溃了。
我想说更好(尽管更冗长)的方法是在 schema.yml 中进行架构更改,应用架构更改(通过私有迁移或手动),然后doctrine:data-dump提交固定数据。
如果您确实选择在开发中进行迁移,也许您应该考虑使用Doctrine Migration 类的->postUp()和->preUp()方法来就地转换数据。