5

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

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

4

3 回答 3

2

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

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

第 1 步:更新数据库 Project 的架构更改。

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

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

于 2013-12-22T13:05:23.147 回答
1

如果您总是使用实体框架迁移来更改数据库结构,那么您也许可以使用下面的方法。这在一定程度上取决于与 EF 应用程序相关的多个数据库的使用方式。

或者,您可以使用 EF 迁移生成可以在每台服务器上手动运行的脚本。

如果您对自动化流程感兴趣,不妨看看Red Gate 的Deployment Manager(完全披露我为 Red Gate 工作)。

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

这对于确保环境中的所有服务器上都具有相同的数据库架构,以及通过测试/登台/产品传播数据库更改以符合任何应用程序更改非常有用。您还可以将其与源代码控制和 CI 系统集成,以自动化从开发到生产的数据库更改

于 2013-12-23T10:46:16.243 回答
0

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

于 2021-06-13T11:59:32.487 回答