【问题标题】:Common practice for propagating database changes through the SDLC?通过 SDLC 传播数据库更改的常见做法?
【发布时间】:2014-07-07 17:00:03
【问题描述】:

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

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

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

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

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

【问题讨论】:

标签: sql database version-control sdlc


【解决方案1】:

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

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

一些可帮助您入门的资源:This is my Google search 产生了以下链接。)

【讨论】:

  • 我认为我的问题与您指出的问题重复,但语言不太精确。我已投票决定将其作为该帖子的副本关闭。感谢您提供非常有帮助的答案!
猜你喜欢
  • 1970-01-01
  • 2015-04-05
  • 1970-01-01
  • 2016-06-13
  • 2011-10-21
  • 1970-01-01
  • 2012-12-28
  • 2018-05-21
相关资源
最近更新 更多