在服务器上更新Django App

时间:2015-07-21 06:54:24

标签: django postgresql nginx gunicorn

我对Python / Django比较陌生,并成功部署了我的第一个应用程序。我想现在用一些新的更改来更新它,但我不确定正确的过程是什么。我的设置是ubuntu / nginx / gunicorn / postgres。

目前我正在采取以下步骤:

  1. 停止nginx:sudo服务nginx停止
  2. 停止gunicorn:sudo service gunicorn stop
  3. 备份数据库? (未实现 - 无法在服务器上找到它)
  4. Git Pull
  5. python manage.py migrate
  6. python manage.py collectstatic
  7. 重新启动gunicorn:sudo service gunicorn start
  8. 重新启动nginx:sudo service nginx restart
  9. 这是有效的,但如果这是一个完整,最准确,最安全的方法,我会很感激吗?

1 个答案:

答案 0 :(得分:2)

执行应用更新的一种懒惰(建议专业)方式是运行自动化脚本,例如FabricAnsible

但是,如果您希望以手动方式进行(这是单调乏味的),您可能会执行以下操作:

  • 从git拉
  • 运行迁移python manage.py migrate(这应确保您在本地对模型所做的更改反映在生产数据库中)
  • 运行静态集合以确保新的静态信息反映在server / static /文件夹中,如下所示:python manage.py collectstatic
  • 然后,重新启动 Django Server 而不是Nginx。类似于:sudo service your_django_server_running_instance restart

例如在digitalOcean上(当使用单击安装时),运行实例的django服务器可能被称为 gunicorn

然后您可能也想查看automating your postgresql db