我在Django 1.5上编写了相当大的代码库,现在是时候升级到最新版本(1.11.2),因为很多东西都运行不正常。
我想知道是否最好逐步升级:1.5-> 1.6-> 1.7 ... 或者只是跳到1.11.2
哪种方法应该更好并使(硬)过程更容易?因为我的项目有很多依赖项?
还有什么好的做法?我正在使用virtualenv并且知道这个Django article about upgrading
答案 0 :(得分:1)
这取决于两件事。有多少人在使用Django应用程序,以及测试覆盖范围的扩展。
如果您是唯一的用户,不用担心,一直升级。但是如果你有很多用户,你会很快通过一直升级到1.11.2找到一些边缘情况可能不会被你的测试所覆盖。
预计会有很多错误500.
如果您的所有应用的覆盖率接近100%,则可能没有这个问题。
请注意,自1.5以来已经发生了很多变化。
答案 1 :(得分:1)
我的案例是:数据
我正在使用SQLite,我相信,如果您只有1次冲突,最新版本可以杀死您。
python manage.py makemigrations等在它的方法中有这么多机会。
如果你将Python从2x改为3x,那么它也是一个新的情况=))
答案 2 :(得分:1)
您找到的文件(“Upgrading Django to a newer version”)有一个很好的指南。
在升级之前, 升级之前的一个重要部分是具有完整的分支机构覆盖率适用于您的应用程序的自动化测试套件。
您希望能够运行完整的自动化测试套件,查看所有传递和知道all branches are exercised by the test suite。
这意味着当你通过移植到Django 1.11来破解某些东西时,你将能够看到你的应用程序的哪些部分不再正常运行。
通过阅读release notes和deprecation timeline,了解当前和目标Django版本之间的所有相关版本,了解您需要做出哪些更改。
查看为Django升级所需的依赖项;如果代码依赖于过时的第三方库中的不兼容功能,则可能需要更正代码。
在我认为升级单件之前,所有都应该完成。