你如何在团队内共享SQL更改?

无论何时进行数据库更改,如何将这些更改应用于团队(以及您的服务器)上的其他数据库?

目前,我们正在使用一个名为changes.sql的文件,我们将所有更改都放在了ISO日期注释中。

有没有更好的办法?


我们使用您的方法的扩展版本。

我们为每个发行版都有一个数据库升级文件夹,其中包含属于发行版的所有脚本。 该文件夹中有一个索引文件,其中包含应该运行的所有脚本的伪链接。

我们有一个每天晚上运行的巡航控制作业来恢复当前生产数据库的副本,然后运行当前版本的升级脚本(通过执行索引文件中定义的脚本)。 每当有人检查当前版本的升级文件夹中的任何内容时,也会运行CI作业。

脚本需要明显重新运行,例如在删除或创建它之前应检查是否存在某些内容。


看看http://dbmaintain.org/overview.html - 这是一个非常强大的工具来管理数据库更新。 它基本上通过以正确的顺序执行几个SQL脚本来工作。 它记得哪些脚本已经被执行。 如果更改了执行脚本,它会报告错误(在生产模式下)或清除数据库并再次执行所有脚本(在测试模式下)。 还有一个很好的教程。

编辑:你也可以将sql脚本分组(即通过发布)。 这里最大的优点是可以对单元测试,测试环境,连续集成,近实时和生产环境使用相同的测试。


不在我目前的工作,但在过去,我在Visual Studio 2010中使用了一个数据库项目,然后发布到SVN。 我们有一个SOP而不是软件自动化来推动从开发到QA,分期和生产的变化。

我与之合作的团队是五名开发人员,共同负责数据库设计和.NET开发。

链接地址: http://www.djcxy.com/p/7989.html

上一篇: How do you share SQL changes within your team?

下一篇: How to implement CHCircularBuffer in iOS project?