复制场景中的Django迁移

问题描述

我在Docker Swarm上有一堆用Django编写的应用程序。当前,所有文件都定义为只有一个副本。他们开始运行entrypoint.sh文件和exec Uwsgicollectstaticmigrate命令。
现在,我需要复制疲惫的旧Django应用程序,但我不知道如何处理它:

  1. 有希望第一个副本将“锁定”-无论锁定有多大-我在想也许可以选择django_migrations表上的更新,但事实并非如此-这样做很完美,因为第二个副本必须等待第一个副本完成(?)
  2. 认情况下,我可能是安全的,因为一个已经执行的ALTER TABLE将使另一个副本运行的失败-不完美,因为迁移命令将失败并弹回容器,但至少不会破坏数据库
  3. 也许没有办法,我需要将迁移任务从复制的容器中切出到“管理容器”中,然后手动运行

我找不到有关它的文档,但我不想相信Django(是如此“大”而成熟)将无法处理类似这样的问题。

我想使用“始终进行向后兼容的模式更改”和不错的CI / CD管道,以简化(或至少自动化)操作,但是我还没有(而且不会)在我有间的时候。)

  1. 在这里我可以采取什么方法
  2. 是否有信息manage.py migrate会在以相同的MysqL数据库为目标同时从两个副本同时运行时表现如何?

谢谢。

(使用旧版MysqL

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)