Gun*_*her 5 django infrastructure docker
允许 Django 应用程序的多个实例同时运行相同的数据库迁移是否安全?
场景描述
这是一个 Django 应用程序的多个实例在负载均衡器后面运行的设置。当 Docker 容器的更新版本可用时,每个旧的 Docker 映像都将替换为新版本。
如果存在新的 Django 迁移,则需要运行它们。这让我想到了一个问题:允许多个容器同时运行迁移 ( python manage.py migrate)是否安全?
关于这个问题的答案可能是什么,我有两个假设。
不,同时在所有容器中运行迁移是不安全的,因为您最终可能会两次应用相同的迁移。
有两种可能的情况:
两次应用迁移(例如添加一个表列)违反了数据库约束,因此只有运行迁移的第一个容器设法完成迁移。在这种情况下,其他容器将死亡,尽管您的编排系统可能会重新启动它们。
两次应用迁移不会违反任何约束,因此可以多次应用。在这种情况下,您最终可能会得到重复的数据。
在任何情况下,您都应该尝试只让一个容器同时应用迁移。
| 归档时间: |
|
| 查看次数: |
962 次 |
| 最近记录: |