【问题标题】:Scripts for moving schema changes from development database to production database用于将模式更改从开发数据库移动到生产数据库的脚本
【发布时间】:2010-09-08 13:24:40
【问题描述】:

我正试图在传球时阻止这个人。我有两个数据库服务器(DEV 和 PRD),我的数据库在 DEV 服务器上。我希望将我的应用程序的 v1 部署到 PRD 服务器。

问题是这样的:假设两个月后,我准备发布我的应用程序的 v1.1,它引入了两个新的 VIEWS、六个新字段(两个表中的三个字段,每个),以及我的更新版本sproc 在具有新字段的表中创建记录。我的 DEV 数据库有新架构,但我的 PRD 数据库有真实数据,所以我不能简单地复制 .mdf 文件,因为我想保留我的 PRD 数据,但要包含我的新架构。

我了解通过保存的 .sql 文件进行表、视图、存储过程的初始创建;但我想知道的是,是否可以使用 SSMS 来创建适当的“更改表”脚本,还是我需要手动执行此操作?

【问题讨论】:

    标签: sql sql-server


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      有一些工具可以为你做到这一点SQL Compare 就是其中之一,也是我最喜欢的一个

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

      【讨论】:

      • 这样的工具叫什么?如果可能的话,我想找一个开源的。
      【解决方案3】:

      由于您的数据库更改应该在受源代码控制的脚本中进行,因此您只需像与该版本关联的任何其他代码一样,将它们与您要移动到产品的版本一起加载。您在任何情况下都不会做的一项是使用用户界面更改开发(或任何其他)数据库。

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-02-21
          • 2023-04-04
          • 1970-01-01
          相关资源
          最近更新 更多