2

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

4

2 回答 2

2

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

于 2019-03-05T08:00:47.490 回答
2

当您更新暂存槽时,连接到该槽的任何数据库都将得到更新。

让我描述两个场景 -

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

  2. Production Slot 和 Staging Slot 使用单独的 DB:这里,如果您在 staging slot 上运行更新,则将在连接到该 slot 的 db 上执行 db 迁移,而 production db 将保持不变。

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

最好的办法是按照第二种情况进行测试。当测试完成时——

  1. 为数据库迁移生成脚本,
  2. 备份生产数据库
  3. 手动运行数据库迁移
  4. 将生产槽与暂存槽交换
于 2019-03-04T20:26:33.847 回答