如何处理 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 部署槽中的数据库回滚?的主要内容,如果未能解决你的问题,请参考以下文章

流分析 - 如何处理参考输入中的 json

如何处理来自 websocket 流的数据并有条件地在 Azure Bot 中发送主动消息?

在使用 Tumbling Window 的 azure 流分析中,如何处理前一小时的数据

Jooq 一次将 one2one 和 one2many 关系数据插入到 2 个表中。如何处理问题和回滚

蓝绿部署技术如何处理数据变化? [关闭]

使用 Azure 文本翻译 API 时如何处理限制?