这里有人在命令中使用dbdeploy (phing)吗?
如果是的话-你是如何管理迁移的?
让我们假设在mercurial存储库的不同分支中开发了两个不同的特性(phing、build文件和db部署迁移存储在mercurial中)。要向每个功能提供哪些ID更改?
发布于 2011-09-19 07:39:13
我们使用的是ant + dbdeploy,过去我们一直使用phing + dbdeploy。
不幸的是,没有自动化的方法来处理这些类型的更改,所以我们不得不达成协议。我们的分支是临时的,当特性/bug被解决时,它们通常在将更改合并到主分支之后被移除。很少有基本规则:
1.确保每个人都知道你会这样做,或者你已经以这种方式改变了数据库结构和/或数据,从而避免了冲突。如果Alice更改了Bob在另一个分支中已经更改的内容,Alice可以使用Bob的增量,或者确保您的更改不会影响它。2.在Charlie将分支合并为master时,只允许一个人将更改合并到主分支,Alice和Bob帮助他解决任何DB delta问题。例如,Alice创建了
123_create_table_user.sql和Bob123_alter_table_message.sql。根据变化,有两个可能的结果,123_create_table_user.sql和124_alter_table_message.sql或123_alter_table_message.sql和124_create_table_user.sql。3.在上述情况下,您是本地数据库的所有者,Alice和Bob都需要确保他们的dbdeploy的changelog是同步的。如果由于表中的值与增量脚本不同而在运行db部署时出现任何问题,则是Alice和/或Bob的错误。
到目前为止,我们所看到的最频繁的数据库更改都是在项目开始时完成的,当时所有的操作都是在一个分支上完成的。稍后,即使有5个或更多的开发人员在自己的分支中工作,我们也很少遇到数据库冲突。
https://softwareengineering.stackexchange.com/questions/109191
复制相似问题