2

我完成了一个功能请求,需要更改我们网站的数据库。

将数据库更改传播到软件开发生命周期的测试和生产阶段的标准方法是什么?我工作的人建议我们没有为此制定程序,但我们应该这样做。

在版本控制的上下文中执行此操作的常用方法是什么?

我正在考虑在自述文件中包含对测试人员/部署人员的说明,以在尝试启动站点之前通过 psql 执行项目中包含的 SQL 脚本。但我不希望该脚本保留在后代分支中,对吗?还是我?对数据库的所有更改都应该以某种方式集中的答案吗?

这里的部分问题可能是我不知道更精确的方式来问这个问题,所以很难谷歌。非常欢迎任何建议,谢谢!

4

1 回答 1

3

SQL DDL的源/版本控制和传播是一个难以解决的问题。有 3rd 方工具,例如Red Gate 的 SQL 源代码控制,可以提供帮助,但价格昂贵。根据我的经验,不同的开发商店倾向于使用内部开发的手动流程。这可能意味着 DDL 导出和保存脚本以将 SQL DDL 硬塞到使用的任何版本控制系统中。(Git、SVN、CVS 等)我还看到一些商店只是简单地压缩并存储整个(但为空的)数据库。这是一种相当笨拙的方法,但它确实有效。

最好的办法是使用一种工具来帮助您,就像上面提到的那样,但是导出和版本控制 DDL 脚本也可以。是的,您确实希望 DDL 集中在某个版本控制系统中。如果您使用自动构建系统,您还可以包括对数据库执行版本控制的 DDL 脚本。无论您选择哪种方法,最重要的是保持一致。

一些可帮助您入门的资源:(是我的 Google 搜索,产生了以下链接。)

于 2014-07-07T17:11:49.323 回答