我有一个测试移动服务myservice_test
和一个生产移动服务myservice
,我开启了代码优先迁移。
当我创建初始迁移或新迁移时,生成的代码包含模式名称:
CreateTable("myservice.Groups",...
我希望能够在两种服务上运行迁移。
问题是我的测试服务器使用了与我的生产服务器不同的模式 - 据我所知,该实例使用服务名称作为模式名称。
因为生成的代码包含模式名称,所以它只能在一台服务器上运行,而不能在另一台服务器上运行。
解决这个问题的正确方法是什么?
答案 0 :(得分:1)
这就是我最终要做的事情:我确保所有实例都使用相同的模式。为此,我必须自己管理dbs。
我们说我有2个实例 - myservice
和myservice_test
。每个都有自己的sql server实例,分别有db myservice_db
和myservice_test_db
。
在每个数据库中,我创建了相同的模式 - myservice
以及具有此模式权限的登录名和用户。
在web.config
我在appSettings
部分添加(或修改)了架构名称:
<add key="MS_TableSchema" value="myservice" />
现在每个人都在使用相同的模式名称。
但是......无法更改移动服务实例的MS_TableConnectionString
以使用新架构。我最终创建了一个新的ConnectionString
应用设置,并使用了它。在每个实例中,我重写此设置以连接到正确的服务器和db。