我们使用 django 版本 1.2 和 python 2.4 开发项目。现在我们要将项目迁移到最新版本(Django1.4 和 python2.7)。
我对移民很陌生,有人可以就此提出建议吗?
我需要注意哪些事项?我们需要重新重写所有代码吗?
这就是我们正在做的事情(我们正在将 ~60Kloc 从 Django 0.97 升级到 1.4):
__init__.py
文件中添加一个注释,指明你的代码使用哪个 Django 版本(这会为你节省很多时间:-)现在您已经升级了代码(您仍然需要计划升级的部署,但这是另一个问题)。
ps:我们将 Django 存储在我们的 VCS 中,因此我们可以跟踪我们需要对 Django 本身进行的任何更改(如果您不想转到 1.4,则尤其需要,但仍可能需要从该版本进行一两个修复)。
只是先在本地做。你肯定会遇到问题,然后做出相应的改变。尽管我假设您不需要更改很多代码。对于 Django,请阅读Django 1.3 发行说明和Django 1.4 发行说明,并特别注意与以前的 Django 版本(不仅仅是 1.2,因为您可能在您的应用程序中使用了 Django 1.0/1.1 的功能)相比已弃用的内容。以我的经验,这些主要是设置的变化和项目结构的一些小变化。
对于 Python 2.4 -> Python 2.7 我不能说太多。这实际上取决于您使用了多少旧功能。当您测试整个应用程序时,您会发现。可能完全没有问题。
如果您使用的是 virtualenv,只需使用您想要的 django/python 版本创建一个新的 virtualenv,处理这个 virtualenv 并针对它运行您的测试套件。
顺便说一句,在 Django 上下文中,您可能需要小心使用“迁移”这个词。当您对数据库中的表进行更改时,迁移通常是指使用 South 进行的模型迁移。
Python 不支持向后兼容性,考虑到您在从 2.4 迁移到 2.7 时可能会遇到一些问题。