HELP!我在Azure上托管了一个MVC4应用程序。我正在使用EF代码优先。这是我的情景:
我在生产数据库中设置了一个标志,以使网站显示“网站已禁用”消息,而不是通常的网站行为。
我发布了对Staging实例的网站代码更新。当我运行登台实例时,它将一些迁移应用于数据库架构。此时,如果因为数据库模式与生产代码不兼容而重新启用它,生产实例将无法工作
当我测试登台实例时,我发现它无法正常工作。
现在我意识到我不知道如何退出我应用的EF迁移,这样我就可以重新启用Production实例并回到我运行之前的状态暂存实例。我知道如何使用Visual Studio中的程序包管理器控制台转到本地数据库中的特定迁移,但我不知道如何手动告诉Azure将数据库更新为特定的迁移。
答案 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:删除“{”和“}”字符。