如何在Azure上回滚EF迁移

时间:2013-11-18 08:00:21

标签: entity-framework azure azure-sql-database

HELP!我在Azure上托管了一个MVC4应用程序。我正在使用EF代码优先。这是我的情景:

  1. 我在生产数据库中设置了一个标志,以使网站显示“网站已禁用”消息,而不是通常的网站行为。

  2. 我发布了对Staging实例的网站代码更新。当我运行登台实例时,它将一些迁移应用于数据库架构。此时,如果因为数据库模式与生产代码不兼容而重新启用它,生产实例将无法工作

  3. 当我测试登台实例时,我发现它无法正常工作。

  4. 现在我意识到我不知道如何退出我应用的EF迁移,这样我就可以重新启用Production实例并回到我运行之前的状态暂存实例。我知道如何使用Visual Studio中的程序包管理器控制台转到本地数据库中的特定迁移,但我不知道如何手动告诉Azure将数据库更新为特定的迁移。

2 个答案:

答案 0 :(得分:12)

导航到Azure门户上的数据库仪表板,然后选择“显示连接字符串”。将ADO.NET字符串复制到-ConnectionString命令的Update-Database开关中。你应该得到这样的东西:

Update-Database 
-TargetMigration {YourMigration} 
-ConnectionString "Server=tcp:{your server name}.database.windows.net,1433;
                   Database={your db};
                   User ID={your user}@{your server};
                   Password={your password};
                   Trusted_Connection=False;
                   Encrypt=True;
                   Connection Timeout=30;" 
-ConnectionProviderName "System.Data.SqlClient"

答案 1 :(得分:3)

运行"Get-Migrations"

它将显示迁移列表。

之后:

Update-Database -TargetMigration:"{NAME_OF_SELECTED_MIGRATION}"

其中{NAME_OF_SELECTED_MIGRATION}将替换为您想要的名称。 PS:删除“{”和“}”字符。