发布后数据库不会更新

时间:2015-09-28 06:55:37

标签: sql-server entity-framework ef-code-first azure-mobile-services

我们有很多移动服务可以成对使用,一个用于开发,一个用于生产。这些移动服务使用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

有关信息,我们的所有生产服务都存在此问题。相反,我们的开发服务工作得很好。

我们所有生产服务之间唯一的共同点是托管其数据库的服务器。但是每个服务都有自己的数据库。

总之,我们无法再对生产中的数据库发布任何更改。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

尝试本教程,其中介绍了如何为移动服务启用迁移。听起来你有一个更复杂的环境,但也许在某个地方缺少配置步骤:How to make data model changes to a .NET backend mobile service