【发布时间】:2015-09-14 09:06:08
【问题描述】:
我有一个分布式应用程序,在多台服务器上的多个进程连接到 SQL Server 数据库。
我需要在第一次启动时在代码中迁移数据库架构,因为升级部署可以在没有数据库访问权限的用户完成(我们使用计算机对象数据库访问权限)。
目前这是通过提供一个带有语句的 sql 文件来完成的,然后具有 db 访问权限(但可能没有应用程序访问权限)的用户将独立运行它。
因为应用程序不相互通信(防火墙、不同的 DC 等)我在想我必须将一个服务器指定为“主服务器”,所有其他服务器都指定为“从属服务器”,然后在主服务器上执行第一个进程那将开始将获得互斥体并进行架构迁移;所有其他人都可以简单地等待,直到他们可以看到架构已迁移。
但是,这对我来说有一定的代码味道。
我尝试研究 Entity Framework 如何在代码优先迁移中处理此问题,但似乎没有(例如,如果两个进程同时启动,它们都会尝试迁移架构)。
还有其他方法吗?
【问题讨论】:
标签: c# .net sql-server