使用Mercurial或Git分支处理数据库分支的标准或最佳方法是什么?

Cha*_*son 6 database git mercurial branch

这一直是我心中的一个大问号.

我很快就会转向Mercurial或Git用于我的网络软件,有时候我的分支机构需要重大的数据库更改,其他分支机构不应该看到.这个,我不能总是为我的分支共享相同的数据库.

是否有一些标准的方法来处理分支和克隆的数据库更改?你们都做了什么?我正在使用MySQL.

Kai*_*nen 5

使用数据库changset工具可能非常有用.我已经使用liquibase(http://www.liquibase.org)来管理数据库的版本控制.我会热烈地向任何人推荐这个工具.Liquibase支持变更集,具有可配置的回滚方案.但是,它是用于管理模式的工具,而不是实际数据.我不会尝试使用它来保持表数据是最新的.

但是,我仍然认为最好的办法是使用liquibase,并为不同的源分支使用不同的模式.


kma*_*rsh 2

为了处理克隆,您的数据库应该设计为多用户的。

对于架构中的更改,请将该分支的架构更改作为存储库的一部分提交。

那么你必须下定决心,对于每一种模式,你是在一个数据库中运行多个表空间,还是在多个数据库中运行等等?然后提交一个指向正确指针的指针作为该分支中安装配置的一部分。