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

问题描述 投票:2回答:2

我知道每个插槽都有自己的配置,但是db迁移呢?他们如何申请?假设我使用迁移部署到暂存,因此暂存数据库会更新。生产数据库如何更新?我如何访问代码中的变量?

swap azure-deployment-slots azure-webapps
2个回答
2
投票

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

让我描述两种情况 -

  1. 生产槽和暂存槽使用相同的DB:在这种情况下,如果更新代码并执行升级到暂存槽,生产DB将接收所有db迁移,因为它也绑定到暂存槽。这可能不是一种理想的方法。
  2. 生产槽和分段槽使用单独的DB:这里,如果在分段槽上运行更新,则将在连接到该槽的db上执行db迁移,生产db将保持不变。

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

最好的想法是遵循第二种方案进行测试。当测试完成时 -

  1. 为db迁移生成脚本,
  2. 备份生产数据库
  3. 手动运行db迁移
  4. 交换带有分段槽的生产槽

2
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.