如何升级 django 项目的多个版本(1.8 到 1.11+)?

How to upgrade django project multiple versions (1.8 to 1.11+)?

我正在将 Django 1.8 上的旧项目 运行 至少升级到 LTS 的 Django 1.11。我听说升级一个 Django 项目的多个版本可能很困难而且令人沮丧。我没有这样做,所以我的问题;每个版本升级是否更好,1.8 -> 1.9 -> 1.10 -> 1.11。或者你建议我直接从 1.8 升级到 1.11。请留下您对此的最佳想法以及我在升级时需要牢记的其他事项。

提前致谢

离1.8到1.11不远了。我以前更新过这样的版本,我很少遇到问题。通常我遇到的问题大部分时间都与 Django 无关,因为项目中使用的一些库需要更新以及我们更新 Django

升级可能会很困难,具体取决于您的情况。

首先,检查每个版本的变更日志。这里的目标是了解是否有可能影响您的代码的重大更改。例如,国外字段模型中的on_delete参数是可选的,现在是必填的。

如果您发现了什么,请更新您的代码。 真正能产生差异的是测试的存在。当我们从 python2 移动到 python3 和 django 1.7 到 1.11 时,测试是我们的保险。

我们刚刚开始使用带有新 python 和新 django 的 virtualenv 将我们的代码升级到不同的分支,并且只是修复、测试然后在开发中合并。如果您没有测试,也许是时候写一些测试了。

我不建议你直接跳到 django 2.0。同样,如果您有测试,您可以逐渐更新,然后检查 deprecation warnings。这些对于为下一个版本准备代码非常有帮助。

更新

在此过程中,我们检查我们的要求并修改我们系统中的每个包以验证兼容性。我们稍微清理了一下,删除了一些包并更新了一些其他包。同样,如果您有测试,您就有保险:-)

结论

  • 检查更新日志
  • 使用单独的分支

然后:

  1. 逐渐更新(例如从 1.7 到 1.8)
  2. (写和)运行 测试
  3. 更新您的 code/packages
  4. 运行 测试
  5. 如果没问题就合并回来 在发展
  6. 再次分支并返回到 1