将Django从1.6.2升级到最新版本(~1.8)

时间:2015-08-04 16:29:44

标签: python django migration

所以我的任务是将Django服务器从1.6.2升级到最新版本(~1.8),同时将Python从2.7.3升级到3.3。我怀疑这会打破相当多的代码。 (我甚至需要将Ubuntu安装从12.04升级到14.04)

我想将我的Django应用程序从当前运行的服务器(Ubuntu 12.04)迁移到虚拟机,并将该环境用作沙箱进行更改。

有人会如此善良地为django app迁移提供指导吗?如果您希望我提供任何具体细节,请与我们联系。

谢谢。

编辑:如果有人想对这个问题投反对票,因为他们认为我没有做足够的研究,我很乐意添加缺失的信息,如果我知道你在寻找什么。

1 个答案:

答案 0 :(得分:4)

从1.5开始的Django版本的设计使得相同的代码可以在documentation中的两个版本的Python上运行,这要归功于six compatibility layer之后的版本。
您可能会面临一些与Django组件严格相关的代码问题,例如print语句和其他可能已编码的部分。官方Python Porting Guide应该为您提供帮助。

Django 1.8是一个LTS(长期版本),所以升级到它是个好主意。考虑到数据库从2.7到3.4,迁移数据库可能会有点问题,但这很可能是你最容易发现问题的地方。 How to Migrate是一个很好的资源。
如果我没记错,1.6中的目录结构有点不同,所以你必须手动移动一些代码和文件。我建议打开两个版本1.61.8的教程页面并比较目录结构。
通过本教程的前两页,您应该有足够的概述来迁移数据库和settings文件。这对migrations也有帮助。
第3页和第4页应该可以帮助您迁移viewsurls个文件

我唯一不熟悉的是迁移具有配置信息的wsgi文件,您应该能够找到有关该here的一些基本信息。

但是,更新你的Ubuntu根本不会改变或影响任何东西。

正如jape和joel的评论中所说,使用virtualenv和git是个好主意。
我想根据自己的经验添加另一个建议,将代码推送到Django服务器:
将代码库下载到本地计算机并在那里工作,一旦完成,服务器在您的计算机上运行良好,请立即将其全部推送到服务器。这样,您就可以将服务器机器特定问题与编码问题隔离开来