2012-08-14 68 views
1

我们用django 1.2和python 2.4开发了项目。现在我们要将项目迁移到最新版本(Django1.4和python2.7)。将django1.2项目迁移到django1.4

我非常新的迁移,任何人都可以请告知这一点。

我需要注意些什么? 我们是否需要重新编写所有代码?

+0

你有测试套件吗?你是否运行覆盖? – thebjorn 2012-08-14 05:22:03

+0

是的。我们有一个测试用例并运行覆盖率。 – keshavv 2012-08-14 05:33:18

回答

2

这就是我们正在做的(我们正在升级〜60Kloc从Django的0.97至1.4):

  • 创建代码
  • 的升级分支创建的virtualenv对升级工作
  • 下载Django的“下一个”版本(如果您喜欢小步骤),或者您想要结束的Django版本,并将其放入您自己的版本控制系统(VCS)中。
  • 检查出您的VCS中的Django到您的virtualenv的根目录。
  • 重复,直到完成:
    • 运行您的测试套件(和覆盖率)。
    • 解决任何问题
  • 添加在你的根__init__.py文件的注释指示哪些Django的版本的代码可以使用(这将节省您大量的时光总有一天:-)
  • 合并后备箱出来升级分支(获取升级过程中发生的所有更改)。
  • 运行您的测试套件,修复任何问题,然后签入合并。
  • 终于:重新集成您的升级分支回干线。

现在你已经升级你的代码(你仍然必须规划升级的部署,但这是另一个问题)。

ps:我们将Django存储在我们的VCS中,这样我们可以跟踪我们需要对Django本身做出的任何更改(尤其是在不想到1.4的情况下需要更改,但仍然可能需要一个或两个修补程序该版本)。

-1

Python不支持向后兼容性,考虑到你可能会从2.4迁移到2.7的一些问题。

0

只要先在本地做。你肯定会遇到问题,然后相应地改变。尽管我假设您不需要更改大部分代码。对于Django的阅读Django 1.3 release notesDjango 1.4 release notes,特别要注意对什么是弃用相对于以前的Django版本(不只是1.2,因为你可能在你的应用程序已经使用functionalty从Django的1.0/1.1以及)。根据我的经验,这些主要是设置的变化以及项目结构的一些细微变化。

对于Python 2.4 - > Python 2.7版我不能说太多。这真的取决于你使用了多少旧功能。你会发现当你测试整个应用程序。可能没有问题。

+0

感谢您的命令。 – keshavv 2012-08-14 10:13:26

0

如果您使用的virtualenv,刚刚创建所需的Django的/ Python的版本新的virtualenv,workon此的virtualenv并对其运行测试套件的。

顺便说一句,你可能要小心使用单词“迁移”,而在一个Django上下文。迁移通常是指在您对数据库中的表进行更改时使用South迁移模型。

+0

不是模型迁移。最新的版本代码迁移。 – keshavv 2012-08-14 10:27:13