我们有许多移动服务,一对一开发,一个用于生产。这些移动服务使用SQL Azure数据库作为存储库。发布后数据库未更新
总结:
生产服务---->在生产服务器上的生产数据库
开发,服务---->在开发的服务器上开发,数据库。
其实我们可以在开发服务上发布。我们有一个蓝色的笑脸(几秒钟后出现),并对数据库(添加列)进行修改。
但是,当我们发布prod服务。我们也有一个蓝色的笑脸(立即出现),但数据库修改(添加列)没有出现!
经过调查后,自上次成功发布以来,两个环境之间唯一的变化就是prod服务器上的审计激活。由于此审核已被禁用。
更深刻的是,当我们读取迁移历史记录表时,我们可以看到一行代表开发者,但没有看到产品。
在开发数据库:
SELECT [MigrationId]
,[ContextKey]
,[Model]
,[ProductVersion]
FROM [dev-server-name].[dev-database-name].[__MigrationHistory]
结果=> 201509240834243_AutomaticMigration最后迁移:今天
在PROD数据库:
SELECT [MigrationId]
,[ContextKey]
,[Model]
,[ProductVersion]
FROM [prod-server-name].[prod-database-name].[__MigrationHistory]
结果=> 201506291336002_AutomaticMigration最后迁移:2015年/ 06/29
有关信息,我们我们所有的生产服务都有这个问题。相反,我们的开发服务完美运作。
我们所有生产服务之间唯一的共同点是托管数据库的服务器。但是每个服务都有自己的数据库。
总之,我们不能再对生产中的数据库发布任何更改。
非常感谢您的帮助。
请遵循以下指南:http://www.asp.net/mvc/overview/getting-started/getting-started-with-ef-using-mvc/migrations-and-deployment-with-the-entity- framework-in-an-asp-net-mvc-application。特别是关于“执行代码优先迁移”的部分。 –