【问题标题】:How do I update Django on Openshift?如何在 Openshift 上更新 Django?
【发布时间】:2015-05-15 16:57:44
【问题描述】:
我正在学习在 Openshift 上部署 Django。
现在我有一个 python-2.7 墨盒并与 Django 1.6 一起运行
克隆在墨盒中的 git repo 是,
git://github.com/rancavil/django-openshift-quickstart.git (Github)
如何更新正在运行的 webapp 的 Django 版本?
我查看了 this 问题,该问题仅解释了有关更新墨盒的信息,而我询问了有关更新墨盒内的软件包同时保持墨盒与 python-2.7 相同的问题。
【问题讨论】:
标签:
django
python-2.7
deployment
openshift
updates
【解决方案1】:
实现此目的的最简单方法是更改setup.py 中的设置依赖项(setup () 的install_requires 参数)。而不是
packages = ['Django<=1.6',]
在墨盒默认情况下你可以写
packages = ['Django>=1.7,<1.8',]
获取最新版本的 Django 1.7。有关如何指定值的更多详细信息,请参阅Python Packaging User Guide。
在您的下一个git push 中,将执行此文件并更新软件包(如果需要)。
【解决方案2】:
警告!
- 确保新版本适合您的应用。 Django 1.7 带来了 DB 迁移功能,这可能会破坏您的兼容性。 (我们之前使用 South 时遇到了一些问题。)
- 在应用升级备份之前应用实例快照(需要时间)
实际上 git push 需要一些时间,而您的应用程序将关闭。
如果你想缩短时间,可以按照这个方法:
ssh 进入您的应用程序 openshift 服务器
pip install --upgrade Django==<new version>
这将立即升级 django。但是,正在运行的 Web 进程仍然保留旧版本。所以需要重启 python 墨盒。
从本地命令行:
rhc cartridge restart -a <your app> -c python
现在它使用新的 django 运行,停机时间最短。
确保按照其他答案中的说明更新 setup.py,以便与下一个 git push 保持一致。