Django migrate 每次都被杀死

时间:2021-03-02 23:39:42

标签: django migrate

我将更新上传到我的生产服务器。每次我运行 migrate (python manage.py migrate)(在我的开发机器上只用了几秒钟)时,它都会挂起很长时间,然后只是简单地说“Killed”。

这也让我摆脱了 pipenv shell。我曾尝试使用迁移标志 --list--plan--fake,但它们都做同样的事情,挂起然后“杀死”。我不小心先在生产机器上运行了 makemigrations。这就是把事情搞砸的原因吗?我怎样才能找出是什么杀死了这个进程?我该如何解决?

我迫切需要更新数据库以运行已安装的代码。我已经检查了数据库,但没有进行任何更改。此外,应用程序中的迁移文件也没有损坏。我在这里不知所措。

弗兰克

3 个答案:

答案 0 :(得分:0)

您能否运行 python manage.py migrate -v 3 使输出更详细,看看您是否可以从那里找到任何内容。

您是否确保在迁移之前停止了 Django 进程(例如 gunicorn)?在您的本地机器上使用 runserver 时不会有太大影响,但在生产中使用例如 gunicorn 时,数据库可能会被锁定。

答案 1 :(得分:0)

是的,原来是内存问题。我没有意识到我在我的 Digital Ocean 液滴上运行在如此紧凑的环境中。我使用他们的 Web 界面增加了内存大小,现在一切正常。感谢所有至少考虑过我的问题的人,也感谢 Erwin 提出这是一个内存问题。

答案 2 :(得分:0)

很可能您将 DEBUG 设置为 True,它会记录大量操作并消耗所有资源,将其设置为 False,您会注意到性能的显着差异。

作为旁注: 尝试命令的所有参数,参见 makemigrations/migrate --help