【发布时间】:2013-12-12 23:31:17
【问题描述】:
我作为外包开发人员从事一个项目,我无法访问测试和生产服务器,只能访问开发环境。
要部署更改,我必须创建 sql 脚本,其中包含要在每台服务器上为我希望部署的功能所做的更改。
示例:
当我对数据库进行每次更改时,我会将脚本保存到一个文件夹中,但有时这还不够,因为我发送了一个脚本来更改视图,但忘记包含我在另一个中创建的新表功能。
另一种情况是通过 SSMS GUI 更改表并忘记使用已更改或新列创建脚本,之后必须发送脚本来更新测试中的表。
由于某些功能可以发送用于测试,而其他功能可以直接用于生产(例如:查询以提供 excel 文件),因此很难跟踪我必须发送到每个环境的内容。
由于部署团队只是执行我发送给他们的脚本来更新数据库,我如何在没有比较工具的情况下管理/跟踪对 sql server 数据库的更改?
[编辑]
我目前使用的工具是 SSMS、VS 2008 Professional 和 TFS 2008。
【问题讨论】:
-
当您说没有比较工具时,您是什么意思?当我处于像您这样无法访问生产服务器的情况时,我会简单地保留一个电子表格,其中包含我所做的更改列表。我还将确保需要脚本的每个更改都有与之关联的更改。我只是手动完成的。没有一个工具来为你跟踪事情,除了自己做之外还有什么?
-
我的意思是没有像 Red Gate 的 SQL 比较或 SQL 数据比较这样的工具,因为我无法访问其他服务器。我正在尝试跟踪更改,但这很难(恕我直言),因为您可以将功能子集发送到不同的环境。以这种方式跟踪更改需要相当长的时间,我正在寻找更好的方法。
-
使用 SQL 比较,您可以将当前版本的数据库架构与备份中的架构进行比较,因此您实际上不需要访问测试或生产服务器
-
我们无权访问备份。目前我们正在从生产中备份,但在我开始从事这个项目之前,已经有几个开发人员更新了。
标签: sql sql-server deployment compare