Git 将sql server数据库提交到源代码管理

Git 将sql server数据库提交到源代码管理,git,version-control,azure-devops,sql-server-data-tools,Git,Version Control,Azure Devops,Sql Server Data Tools,我在两个不同的sql server实例上有两个名为“xyz”(例如)的数据库。sql server实例上的两个xyz数据库都有一些相同的数据库对象,而两个实例上的某些数据库对象不同 我希望在azure devops git存储库中存储xyz数据库的单个副本。此副本应包括两个sql server实例中的所有对象 然后,我想使用AzDo Git存储库使用azure devops管道实现CI/CD,并仅部署特定于sql server实例的数据库对象,这意味着即使AzDo repo包含来自两个不同实例的

我在两个不同的sql server实例上有两个名为“xyz”(例如)的数据库。sql server实例上的两个xyz数据库都有一些相同的数据库对象,而两个实例上的某些数据库对象不同

我希望在azure devops git存储库中存储xyz数据库的单个副本。此副本应包括两个sql server实例中的所有对象

然后,我想使用AzDo Git存储库使用azure devops管道实现CI/CD,并仅部署特定于sql server实例的数据库对象,这意味着即使AzDo repo包含来自两个不同实例的“xyz”数据库的对象,触发生成时,每个sql server实例上的xyz数据库应保持其自定义版本

我正在使用SSDT 2017中的SQL数据库项目编写数据库对象的脚本

我尝试了以下方法来创建一个数据库的两个不同版本的单个副本

1) 在ssdt 2017中创建解决方案并创建sql数据库项目。 2) 右键单击解决方案,然后单击模式比较。选择第一个sql server实例,将xyz数据库作为源,将空解决方案文件作为目标,然后单击比较。 比较结果表明,解决方案文件中不存在任何结构。单击“更新”按钮更新解决方案文件

3) 接下来,我比较了第二个sql server实例中的xyz数据库作为源和更新的解决方案文件作为目标。然后,我将第二个sql server实例中的对象更新为解决方案文件

现在,ssdt中的sql数据库项目具有来自两个sql server实例的xyz数据库的对象

现在,我在AzdoGit存储库中有一个单一的真相来源。但我不知道如何利用此功能将相应的对象部署到相应的sql server实例。(注意:我不希望两个sql server实例上都有xyz数据库的所有对象。每个实例上的每个数据库都必须维护其自定义版本)


如果有什么不清楚的地方,请告诉我。非常感谢您的帮助。

使用通用代码创建一个项目,然后再创建两个项目,并在每个项目中添加自定义代码


从这两个项目创建对公共代码的“相同数据库”引用,并且在部署时,部署自定义代码项目,但指定包含复合项目的选项。

Hello@EdElliot,感谢您提供的解决方案。但是我没有从第二行开始。你能详细说明一下吗:)一个解决方案,三个项目。如果您有一个“Common”条目,那么每个特定于数据库/平台的项目都将包含对公共条目的引用,并使用“Same Database,Same Server”选项作为引用。您可以通过右键单击项目中的引用并添加数据库引用来实现。