使用具有不同模式的代码优先迁移

时间:2014-11-25 15:41:48

标签: azure ef-migrations azure-mobile-services

我有一个测试移动服务myservice_test和一个生产移动服务myservice,我开启了代码优先迁移。

当我创建初始迁移或新迁移时,生成的代码包含模式名称:

CreateTable("myservice.Groups",...

我希望能够在两种服务上运行迁移。

问题是我的测试服务器使用了与我的生产服务器不同的模式 - 据我所知,该实例使用服务名称作为模式名称。

因为生成的代码包含模式名称,所以它只能在一台服务器上运行,而不能在另一台服务器上运行。

解决这个问题的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

这就是我最终要做的事情:我确保所有实例都使用相同的模式。为此,我必须自己管理dbs。

我们说我有2个实例 - myservicemyservice_test。每个都有自己的sql server实例,分别有db myservice_dbmyservice_test_db

在每个数据库中,我创建了相同的模式 - myservice以及具有此模式权限的登录名和用户。

web.config我在appSettings部分添加(或修改)了架构名称:

<add key="MS_TableSchema" value="myservice" />

现在每个人都在使用相同的模式名称。

但是......无法更改移动服务实例的MS_TableConnectionString以使用新架构。我最终创建了一个新的ConnectionString应用设置,并使用了它。在每个实例中,我重写此设置以连接到正确的服务器和db。