我将更新上传到我的生产服务器。每次我运行 migrate (python manage.py migrate
)(在我的开发机器上只用了几秒钟)时,它都会挂起很长时间,然后只是简单地说“Killed”。
这也让我摆脱了 pipenv shell
。我曾尝试使用迁移标志 --list
、--plan
和 --fake
,但它们都做同样的事情,挂起然后“杀死”。我不小心先在生产机器上运行了 makemigrations
。这就是把事情搞砸的原因吗?我怎样才能找出是什么杀死了这个进程?我该如何解决?
我迫切需要更新数据库以运行已安装的代码。我已经检查了数据库,但没有进行任何更改。此外,应用程序中的迁移文件也没有损坏。我在这里不知所措。
弗兰克
答案 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