如何处理 Azure 部署槽中的数据库回滚?
Posted
技术标签:
【中文标题】如何处理 Azure 部署槽中的数据库回滚?【英文标题】:How to handle database rollback in Azure Deployment Slots? 【发布时间】:2015-04-22 18:38:13 【问题描述】:借助 Azure 网站部署槽“槽设置”的新功能,我们可以将连接字符串和应用设置“固定”到特定槽。我设置了两个插槽:生产和登台,并验证我可以在它们之间交换并指向正确的数据库。数据库正在使用代码优先迁移自动更新。但是,我不确定在这种情况下“回滚”将(或应该)如何与数据库一起工作。
例如,考虑以下情况:
App v1 正在 staging 中运行并指向 staging Db v1 App v1 正在生产中运行并指向生产 Db v1 App v2 部署到 staging,Code First Migrations 将 staging Db 更新到 Db v2 暂存槽和生产槽已交换。 App v2 正在生产中运行,生产数据库已更新为 Db v2。 App v1 正在 staging 中运行,但指向 staging db,它仍然是 Db v2有没有办法将临时数据库回滚到 v1?如果发生“紧急情况”并且我不得不再次交换暂存和生产,是否有办法将生产数据库恢复到 v1?我知道这可以使用 Update-Database 来完成,但不清楚如何在 Azure 网站中尽可能自动化地进行设置。
【问题讨论】:
这是一个很好的问题。一年后还有更好的答案吗? 【参考方案1】:我想你回答了你自己的问题。除非 DBv1 上有暂存数据库,否则您必须手动更新暂存数据库才能进行回滚。我认为没有一种自动化的方法可以做到这一点。
【讨论】:
以上是关于如何处理 Azure 部署槽中的数据库回滚?的主要内容,如果未能解决你的问题,请参考以下文章
如何处理来自 websocket 流的数据并有条件地在 Azure Bot 中发送主动消息?
在使用 Tumbling Window 的 azure 流分析中,如何处理前一小时的数据