在代码处于颠覆的项目中保持数据库结构是最新的?

时间:2010-04-03 12:44:21

标签: mysql svn

我一直在使用Subversion已经有一段时间了,对我的项目进行管理是非常不可思议的,甚至帮助管理部署到几个不同的服务器,但只有一件事情仍然让我烦恼。每当我对数据库结构进行任何更改时,我都需要手动更新每个服务器,我必须跟踪我所做的任何更改,并且因为我的一些服务器运行了项目的分支(仍在进行的修改,或者是为了不同的目的而制作的,有点尴尬。

到目前为止,我一直在使用“database.sql”文件,该文件是特定版本的数据库结构的转储。但这似乎是一种管理这种方式的坏方法。

我想知道,当他们处理项目并使用Subversion时,其他人如何管理他们的MySQL数据库?

2 个答案:

答案 0 :(得分:0)

在我的团队中,我们目前正在做的事情: 我们只有一个分支:主干,这是每个开发人员检查其变化的地方 当我们想要发布我们的解决方案的新版本时,我们从主干创建一个新的分支。 (稍微稳定一下后) 对于每个版本,我们还有一个文件将数据库的模式从版本n-1迁移到版本n。我们还有一个从n回滚到n-1的脚本。因此,当我们开始新版本时,我们会创建新的迁移版本。回滚在主干中的文件。
因此,我们能够从给定模式的任何“版本”开始重建与任何版本的解决方案相对应的数据库 实际上,我们在这个问题上也有很多争论,这最终是我们选择做的。但如果你们有一些想法可以帮助我们改进,请告诉我们:)

答案 1 :(得分:0)

Liquibase可能对您有用。

我已经玩了很多这个,虽然没有在愤怒中使用它。 基本上,您可以在语法中定义数据库和脚本,并为您生成各种数据库的升级脚本和脚本脚本。

需要一点习惯,但效果很好。

相关问题