问题描述
我在Docker Swarm上有一堆用Django编写的应用程序。当前,所有文件都定义为只有一个副本。他们开始运行entrypoint.sh文件和exec Uwsgi的collectstatic
和migrate
命令。
现在,我需要复制疲惫的旧Django应用程序,但我不知道如何处理它:
- 有希望第一个副本将“锁定”-无论锁定有多大-我在想也许可以选择django_migrations表上的更新,但事实并非如此-这样做很完美,因为第二个副本必须等待第一个副本完成(?)
- 在默认情况下,我可能是安全的,因为一个已经执行的ALTER TABLE将使另一个副本运行的失败-不完美,因为迁移命令将失败并弹回容器,但至少不会破坏数据库
- 也许没有办法,我需要将迁移任务从复制的容器中切出到“管理容器”中,然后手动运行
我找不到有关它的文档,但我不想相信Django(是如此“大”而成熟)将无法处理类似这样的问题。
我想使用“始终进行向后兼容的模式更改”和不错的CI / CD管道,以简化(或至少自动化)操作,但是我还没有(而且不会)在我有时间的时候。)
谢谢。
(使用旧版MysqL)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)