2

我正在尝试使用 SQL 比较从我的 TFS 项目创建一个数据库。

目前,我们使用 Visual Studio 中的比较工具将我们的数据库项目与 CI 数据库进行比较,但是,我被要求最终将其作为构建步骤作为自动化部署的一部分运行。

问题* SQL 比较无法识别在 Visual Studio 中生成的数据库程序集文件。因此,一些使用 clr 函数的计算列在部署时失败。

我成功地使用 SQL Compare 将以前脚本化的数据库脚本写入“脚本文件夹”。接下来,我将我的 SQL 比较左侧指向那个新的“脚本文件夹”,右侧指向一个新的数据库,并且在左侧检测到程序集文件。

然后,我尝试将数据库程序集文件复制到 Visual Studio 数据库项目位置,但没有成功。

我将生成的文件“Database.xxx.dacpac”文件解压缩到一个文件夹中,并在 SQL 比较中设置我的左侧比较。SQL 比较抱怨“发现缺少元数据文件的脚本文件夹”。我点击“比较”后还有其他错误,但我忽略了它们。但是我的汇编文件出现了!这应该是正确的过程吗?假设我删除了所有警告?

我希望能够将我在 Visual Studio 中的数据库项目文件与新数据库进行比较,并在 SQL Compare 中更新它

4

1 回答 1

0
  1. 在解决方案资源管理器中右键单击您的数据库项目文件
  2. 去构建 - 并查找“构建输出路径”的位置找到“database.dacpac”文件

选项 A:双击并解压 .dacpac 文件。在 SQL 比较中使用选项“脚本文件夹”并使用新创建的文件夹作为源,然后您可以从您的 Visual Studio 数据库项目中创建一个数据库。SQL 比较 - 使用 DACPAC 文件

选项 B:使用命令行和 SSMS 应用程序 sqlpackage.exe 直接从 dacpac 文件创建数据库,无需解压。使用命令行部署 DACPAC

选项 C:在 SSMS 中右键单击要升级的数据库 - 然后单击任务 ->“升级数据层应用程序”。使用 DACPAC 文件作为源。

于 2019-06-24T14:04:03.563 回答