有没有办法从实时 SQL Server 数据库更新数据库项目(或 dacpac)?

问题描述 投票:0回答:1

所以这里的场景是,我在我们的实时 DEV SQL 服务器中的数据库中做了很多工作(即更改表名称、重写和重命名 SP、同义词等)。现在我想将所有更改移至版本控制,其中该数据库存储为数据库项目文件夹(即包含 .sqlproj 文件以及架构文件夹等)。到目前为止,我能够从 DEV 服务器中提取数据库作为外部 dacpac 文件,并且能够进行架构比较,将目标设置为数据库项目,但是应用架构比较更改的按钮显示为灰色,因为目标必须是服务器上的另一个现有数据库。

我还注意到,模式比较只是首先为数据库项目构建一个 dacpac 文件,然后将其用于模式比较。

那么有没有办法更新这个旧的 dacpac 文件或给定另一个 dacpac 文件的整个项目文件夹?

我也是通过 Azure Data Studio 完成这一切。将不胜感激任何提示或建议:)

sql-server dacpac azure-data-studio schema-compare
1个回答
0
投票

我们将 Visual Studio 2019 与常规 SQL Server 数据库项目结合使用。

在该项目中,我们有一个使用“工具”->“SQL Server”->“新架构比较”创建的架构比较文件 (compare.scmp)。

在该比较中,我们将生产数据库作为源,将我们的项目作为目标:

SQL Schema Compare screenshot

运行比较并获取更改列表后,我们单击“更新”按钮来添加/删除/更新本地文件,它们最终都会在我们的项目中作为单独的 .sql 文件:

SQL files in project, grouped by folder, e.g. Tables, Stored Procedures...

从那里我们只需将更改提交到 git 存储库,并在对数据库模式进行任何更改后重复整个过程。我们还可以从同一个 SQL 项目推送更改,但在我们的例子中,我们仅将其视为版本控制,因为数据库本身可以在我们的开发团队之外进行修改。

© www.soinside.com 2019 - 2024. All rights reserved.