有关数据库版本控制的建议

时间:2011-12-21 14:14:34

标签: php mysql database svn version-control

我正在寻找有关我们数据库版本控制的一些建议。

我们目前有一些开发人员都在运行他们自己的本地开发版本的网站项目。

这些网站也可供客户在登台服务器上查看。

我遇到的问题是我可以从舞台服务器获取最新的数据库,然后在我的本地副本上对其进行更改。

但与此同时,客户已经在升级时修改了他们的CMS。

我正在阅读有关SQL复制的内容,这是一个好主意吗?我在想,每当在暂存站点上进行更改时,它都会复制到我们的本地服务器并更新该数据库。

无论如何,我们很感激。

2 个答案:

答案 0 :(得分:1)

如果每个开发人员获得master(staging)的slave并进行本地更改,他们可能会破坏复制,因为如果slave模式不兼容,复制语句将会中断。因此,所有更改都必须在登台服务器上进行,并且所有开发人员都会得到它们,如果它们没有最新的源,则源会破坏......所以,虽然这可能有效但我认为这很难。

我建议对每个环境必须运行的文件进行数据库更改。您可以调查一些liquibasedbdeploy

答案 1 :(得分:1)

我们所做的是添加一个包含一列的db_version表,每次更改后版本都会增加以反映日期 - 20101229,20110305,20110808,201110808a等。

所有更改都存储在源控件下的单个文件SQL中,并且大多数更改是create table,alter table,insert(small static data)等。每次开发人员想要更改架构时,它都可以知道所有的变化是相对于他拥有的版本,并更新他的架构