如何在Azure Web App部署插槽中交换数据库?

时间:2019-02-22 10:41:44

标签: swap azure-deployment-slots azure-webapps

我知道每个插槽都有其自己的配置,但是数据库迁移又如何呢?他们如何申请?假设我将迁移部署到暂存中,以便暂存数据库得到更新。生产数据库如何更新?以及如何访问代码中的变量?

2 个答案:

答案 0 :(得分:2)

更新暂存插槽时,与该插槽连接的任何DB都会更新。

让我描述两种情况-

  1. 生产插槽和登台插槽使用相同的数据库: 在这种情况下,如果更新代码并升级到登台插槽,则生产数据库将收到所有数据库迁移,因为它也已绑定到登台插槽。这可能不是理想的方法。

  2. 生产槽和登台槽使用单独的数据库: 在这里,如果在登台插槽上运行更新,则将在连接到该插槽的数据库上执行数据库迁移,而生产数据库将保持不变。

现在,第一种情况不是一个好主意,因为您将直接对生产数据库进行更改。但是您将获得一个完全更新的数据库。在第二种情况下,这是安全的,但您的最新数据可能不一致。

最好的方法是遵循第二种情况进行测试。测试完成后-

  1. 为数据库迁移生成脚本,
  2. 备份生产数据库
  3. 手动运行数据库迁移
  4. 用暂存槽交换生产槽

答案 1 :(得分:2)

问题是自动部署大约需要3分钟,但是数据库迁移大约需要30秒