如何在 Openshift 上更新 Django?

How do I update Django on Openshift?

我正在学习在 Openshift 上部署 Django。 现在我有一个 python-2.7 墨盒和 运行 Django 1.6 在墨盒中克隆的 git 回购是,

git://github.com/rancavil/django-openshift-quickstart.git (Github)

如何更新 运行 webapp 的 Django 版本?

我查看了 this 问题,该问题只是解释更新墨盒,而我询问的是更新墨盒内的包,同时保持墨盒与 python-2.7 相同。

实现这一点的最简单方法是更改​​ setup.py 中的设置依赖项(setup ()install_requires 参数)。而不是

packages = ['Django<=1.6',]

如墨盒默认值,您可以这样写

packages = ['Django>=1.7,<1.8',]

获取最新版本的Django 1.7。有关如何指定值的更多详细信息,请参阅 Python Packaging User Guide.

如果需要,下一个 git push 将执行此文件并更新包。

警告!

  • 确保新版本适用于您的应用。 Django 1.7 带来了数据库迁移功能,这可能会破坏您的兼容性。 (我们之前使用南方时遇到了一些问题。)
  • 在应用升级备份应用程序实例快照之前(需要时间)

实际上 git 推送需要一些时间,而您的应用程序将会关闭。 如果想缩短时间,可以按照这个方法:

ssh 进入您的应用 openshift 服务器

pip install --upgrade Django==<new version>

这将立即升级 django。然而 运行 网络进程仍然保留旧版本。所以你需要重新启动 python 墨盒。

来自您的本地命令行:

rhc cartridge restart -a <your app> -c python

现在是 运行 新的 django,停机时间很短。

确保按照另一个答案中提到的那样更新 setup.py,以便与下一个 git 推送保持一致。