【发布时间】:2013-07-05 10:43:07
【问题描述】:
我正在努力跟上数据库更改以及如何干净地维护和部署从 Dev 到 PRD 从一个版本到另一个版本的数据库更改。
目前,我使用 SQL 脚本来确定自上次发布以来发生了哪些变化;
- Procs 和 Views 更容易推进,因为我可以简单地删除并重新创建(如果存在)。
- 表更改更加困难,因为不能简单地删除现有表。
但我认为我无法理解的主要问题是,我们在任何两个主要 PRD 版本之间都有多个针对 Dev 和 UAT 的迷你版本。
Dev 和 UAT mini 版本还可以,因为我从其他开发人员那里获得了更改列表,我将其与我的合并,然后发布了,而且我是 Dev 和 UAT 数据库的系统管理员,所以我确切地知道什么是否存在,当我应用更改时会发生什么。
对于 PRD,我必须准备一个干净的脚本并将其交给 DBA,以便他可以在那里运行它,但除了 PRD 上的表名、列和数据之外,我无法查看其他任何内容。
PRD 的这个脚本应该捕获几乎所有进入迷你版本的东西,但大多数时候这些迷你版本不是连续的,有时会相互否定,因为一个添加了功能 A,然后后续版本删除了功能 A,但是对于 PRD,我们可能必须添加功能 A,因此无需发布第二个迷你版本,这将有效地删除功能 A。
简而言之,我正在寻找管理和跟踪版本之间数据库更改的方法,以及为数据库更改构建部署脚本的好方法。
注意:我在 TFS 中保留了一份手动维护的所有 SQL 对象的副本。
我尝试使用数据库项目,但我没有很幸运地实现了我想要的。
有什么想法吗?非常感谢任何帮助
【问题讨论】:
标签: tsql sql-server-2005 deployment dbdeploy