用于将架构更改从开发数据库移动到生产数据库的脚本

时间:2010-08-04 18:18:32

标签: sql sql-server

我正试图在通行证时把这个关掉。我有两个数据库服务器(DEV和PRD),我在DEV服务器上有我的数据库。我希望将我的应用程序的v1部署到PRD服务器。

问题是:在两个月内说,我准备发送我的应用程序的v1.1,它引入了两个新的VIEWS,六个新字段(两个表中的三个字段,每个字段),以及我的更新版本使用新字段在表中创建记录的sproc。我的DEV数据库有新模式,但我的PRD数据库有真实数据,所以我不能简单地复制.mdf文件,因为我想保留我的PRD数据,但包括我的新模式。

我理解通过保存的.sql文件初始创建表,视图,sprocs;但我想知道的是,是否可以使用SSMS创建appripriate“alter table”脚本,还是我需要手动执行此操作?

4 个答案:

答案 0 :(得分:1)

有一些工具可以帮助你SQL Compare是其中之一,我最喜欢

否则你必须自己编写代码并且不要忘记在重新创建proc时编写权限脚本(除非你在这种情况下使用ALTER PROC保留权限)

答案 1 :(得分:1)

我已使用发布更新SQL脚本处理此问题,该脚本将更改应用于先前版本。

您需要自己编写代码或使用众多DBA工具之一进行数据库比较并生成差异脚本。

答案 2 :(得分:1)

由于您的数据库更改应该位于源代码管理下的脚本中,因此您只需使用要转移到prod的版本加载它们,就像与该版本关联的任何其他代码一样。您在任何情况下都不会使用用户界面更改dev(或任何其他)数据库。

答案 3 :(得分:0)

尝试在DBSourceTools中找到的修补引擎 http://dbsourcetools.codeplex.com
DBSourceTools是一个帮助开发人员在源代码控制下获取数据库的实用程序 只需将其指向源数据库,它将编写所有数据库对象的脚本,将数据包含在磁盘中 获得目标数据库(v1)后,您可以将补丁脚本放在补丁目录中,DBSourceTools将在重新创建数据库后按顺序运行这些补丁。
这是彻底测试更改脚本的一种非常有效的方法。