【问题标题】:SQL Migration of Databases数据库的 SQL 迁移
【发布时间】:2015-01-14 16:17:44
【问题描述】:

我正在运行 SQL Server 2008 R2,我有一个测试数据库,我已对其进行了修改以具有新的外键和列等。

我想知道将所有更改映射到我的实时数据库的最佳方法是什么?

我是否必须在每个表上单独运行删除和创建脚本?

我尝试右键单击 -> 任务 -> 生成数据库脚本 -> 但是当我运行它时会出现很多错误。

【问题讨论】:

    标签: sql-server tsql sql-server-2008-r2 database-migration


    【解决方案1】:

    问题是简单的比较和同步在执行比较和生成 DDL 脚本时没有利用版本控制存储库。因此,版本控制存储库不能作为唯一的事实来源。

    简单比较和同步遇到的另一个问题是,由于信息存储在比较和同步工具外部的 ALM、CMS 或版本控制存储库中,它会比较整个数据库并显示差异,生成相关和不相关的部署脚本。

    最关键的是,简单的比较和同步并不能确保部署脚本处理冲突并合并它们。

    另一方面,数据库强制变更管理,根据版本控制存储库和当时的环境结构,在需要时将数据库对象的版本控制过程的强制执行与部署脚本的生成相结合。

    这种方法使用“按需构建和部署”,这意味着部署脚本是在需要时构建(生成)的,而不是作为开发的一部分。这样可以有效地处理冲突、合并和进程外更改。

    在这里查看更多信息:

    DevOps for Database

    【讨论】:

      【解决方案2】:

      比较数据库并将更改从一个应用到另一个(在您的案例测试到生产)的最佳方法是使用 SSDT (SQL Server Data Tools)。

      使用此工具,您可以轻松比较两个数据库、源数据库和目标数据库,查看更新目标数据库的每个对象所需的脚本,使其与源数据库完全相同,并运行所有或仅选择的脚本到目标数据库。

      您还可以生成更新脚本或 dac pac。

      请参阅此以获取更多信息:

      【讨论】:

      • 谢谢,我会研究一下这些链接
      猜你喜欢
      • 2011-02-05
      • 1970-01-01
      • 1970-01-01
      • 2018-06-22
      • 1970-01-01
      • 1970-01-01
      • 2010-12-28
      • 1970-01-01
      • 2019-04-16
      相关资源
      最近更新 更多