我们有很多移动服务可以成对使用,一个用于开发,一个用于生产。这些移动服务使用SQL Azure数据库作为存储库。
总结:
生产服务---->生产服务器上的生产数据库
开发服务----> Dev-Server上的Dev-Database。
实际上我们可以在开发服务上发布。我们有一个蓝色的笑脸(几秒钟后出现)并且对数据库进行修改(添加列)。
但是,当我们发布prod服务时。我们还有一个蓝色的笑脸(立刻出现)但是没有出现对数据库(添加列)的修改!
经过调查,自上次成功发布以来,两个环境之间唯一的变化是prod服务器上的审核激活。由于此审核已被禁用。
更深入的是,当我们阅读迁移历史记录表时,我们可以看到dev的行,但不是prod。
在开发数据库中:
SELECT [MigrationId]
,[ContextKey]
,[Model]
,[ProductVersion]
FROM [dev-server-name].[dev-database-name].[__MigrationHistory]
结果=> 201509240834243_AutomaticMigration上次迁移:今天
在prod-database上:
SELECT [MigrationId]
,[ContextKey]
,[Model]
,[ProductVersion]
FROM [prod-server-name].[prod-database-name].[__MigrationHistory]
结果=> 201506291336002_AutomaticMigration上次迁移:2015/06/29
有关信息,我们的所有生产服务都存在此问题。相反,我们的开发服务工作得很好。
我们所有生产服务之间唯一的共同点是托管其数据库的服务器。但是每个服务都有自己的数据库。
总之,我们无法再对生产中的数据库发布任何更改。
提前感谢您的帮助。
答案 0 :(得分:0)
尝试本教程,其中介绍了如何为移动服务启用迁移。听起来你有一个更复杂的环境,但也许在某个地方缺少配置步骤:How to make data model changes to a .NET backend mobile service。