SQL Server具有相同模式的多个数据库

时间:2013-08-31 18:35:35

标签: sql sql-server-2008 azure-sql-database

我有一个跨多个SQL Azure数据库分片的解决方案。这些数据库都具有完全相同的数据模式,我从其中一个生成edmx。

如何在变更管理方面维护多个数据库的模式? 必须在所有其他数据库上自动应用一个模式中的任何更改。有什么我想念的吗?我查看了数据同步,但似乎解决了另一个问题。在我的例子中,模式完全相同,存储的数据不同。

3 个答案:

答案 0 :(得分:2)

这可以使用SSDT(Addin for VS)和自动部署工具(我使用Final Builder)来实现。

我目前使用SSDT工具创​​建了原始模式的数据库项目。 如果其中一个数据库有任何更改,我在SSDT中使用模式比较并更新数据库项目。 然后,我按照以下步骤将更改推广到其他数据库。

步骤1:将架构更改更新到数据库项目。

步骤2:使用MSBuild并通过将其中一个数据库设置为Target来生成部署脚本。

步骤3:使用任何自动部署工具在所有数据库中运行生成的脚本。

答案 1 :(得分:1)

如果您始终使用Entity Framework迁移来更改数据库结构,那么您可以使用下面的方法。它取决于您的多个数据库如何与EF应用程序相关使用。

或者您可以使用可以在每台服务器上手动运行的generate a script的EF迁移。

如果您对自动化过程感兴趣,可能值得一看红门的Deployment Manager(完全披露我为Red Gate工作)。

这使您可以获取数据库,并从Visual Studio或SSMS将其转换为可以部署到多个服务器和环境的程序包。最多可以使用5个项目和5个服务器的入门版,并将其部署到Azure。它也可以部署.NET Web应用程序,但您可以将它用于数据库。

非常有利于确保环境中的所有服务器上都存在相同的数据库模式,并且可以根据任何应用程序更改通过test / staging / prod传播数据库更改。您还可以将其与源代码控制和CI系统集成,以自动化从Dev到Production的数据库更改

答案 2 :(得分:0)

有一个名为 Airbyte 的工具,它用于在各种数据库服务器之间同步(计划/自动化)和复制一个数据库实例(完整数据库或仅选择)。