Django代码更改未反映在生产服务器上

时间:2018-10-06 08:15:49

标签: django production-environment production

我在Django应用程序中的一种模型形式中进行了更改-我为用户添加了新的输入字段。然后,我测试了环境的变化,一切正常。然后,我提交更改并将其推送到远程回购。我在运行于AWS的生产服务器上撤消了更改。我在终端中运行pkill -f runserver以重新启动服务器,但是更改没有发生。仅显示有关html标签的更改(新标签等)。 不存在的更改是来自“模型”的更改:用户的新输入字段-模板页面中完全缺少这些输入字段。 是什么导致这种行为?

4 个答案:

答案 0 :(得分:1)

如果使用超级用户,则需要运行

sudo supervisorctl reload

我遇到了同样的问题,此命令在AWS-Ubuntu Server 18.04 LTS上对我有效。

答案 1 :(得分:0)

将更改推送到生产服务器后,还需要迁移数据库更改。 在您的本地仓库(在其中进行模型更改的地方)上,运行makemigrations命令

python manage.py makemigrations

在生产服务器上获取更改后,运行migrate命令

python manage.py migrate

答案 2 :(得分:0)

每次更改代码时,都需要重新启动gunicorn服务。 运行sudo systemctl restart gunicorn 这样做,更改就会反映出来。

答案 3 :(得分:0)

这取决于您使用的服务器:nginx,gunicorn或apache。

如果使用nginx和gunicorn设置服务器,则可以尝试手动重新启动这些服务,但是我建议使用诸如supervisor之类的方法来简化重新启动过程。

如果您使用的是Apache,则可能使用

sudo service httpd restart