将 Google App Engine 应用程序从 Django 0.96 迁移到 Django 1.2

Posted

技术标签:

【中文标题】将 Google App Engine 应用程序从 Django 0.96 迁移到 Django 1.2【英文标题】:Migrating a Google App Engine application from Django 0.96 to Django 1.2 【发布时间】:2011-08-16 04:52:23 【问题描述】:

我将很快开始将使用默认版本的 Django (0.96) 构建的不同 Google App Engine 应用程序移植到 Django 1.2。除了 i18n 的东西,我通常不使用任何特定的 Django 模块来翻译网站。

我打算通过backwards-incompatible changes to Django from 0.96 to 1.0 和不同的Django release notes。这些是 0.96 和 1.2 之间可用的当前发行说明:

1.2 发布 Django 1.2.5 发行说明 Django 1.2.4 发行说明 Django 1.2.2 发行说明 Django 1.2 发行说明 1.1 发布 Django 1.1.4 发行说明 Django 1.1.3 发行说明 Django 1.1.2 发行说明 Django 1.1 发行说明 1.0 版本 Django 1.0.2 发行说明 Django 1.0.1 发行说明 Django 1.0 发行说明

我想知道是否有更好的方法来进行此迁移/升级,或者是否有人已经这样做了会有一些有用的提示。我知道这涉及到很多阅读,这不是我想要阻止的,而是更多地获得指针以使这个过程更顺畅。

我有不同的应用程序要迁移,但将从simple/small application 开始以了解其要点。

【问题讨论】:

【参考方案1】:

与其试图找出 Django 0.96 和 1.2 之间发生的所有变化,我的建议是编写一个测试套件来涵盖您的 UI 行为。您可以使用新的testbed framework 对每个模板进行单元测试,或者使用Selenium 之类的东西编写完整的基于浏览器的集成测试。

一旦你有工作测试,只需更新 Django,重新运行你的测试,看看有什么问题。如果您有集成测试,您还可以通过uploading a non-default version 测试您对生产的更改。

【讨论】:

有趣的方法。实际上,我的第一个“应用程序”更像是一个小型静态网站,所以我什至可以手动完成。但我真的很想了解这两个版本之间发生的重要变化。可能会将它用于我更大的应用程序。【参考方案2】:

我最近设法升级了我相当大的application 经验,一旦知道该怎么做就很容易了。除了上面描述的加载 django 1.2 之外,我还必须进行 3 处更改:1) 将 i18n 导入更改为我们称为 _i18n 的函数的其他一些所谓的惰性导入。 2) 我不得不更改一些您可能没有的 RSS 处理。 3) 不再使用人性化库。一旦知道如何进行实际升级,我只花了大约 5 或 10 分钟。

【讨论】:

以上是关于将 Google App Engine 应用程序从 Django 0.96 迁移到 Django 1.2的主要内容,如果未能解决你的问题,请参考以下文章

我如何从Google App Engine中触发一个HTTP云函数?

将 Ruby on Rails 应用程序部署到 Google App Engine

在 Google 虚拟机上处理来自 Google App Engine 的数据

使用 Google App Engine 将所有请求从一个域重定向到另一个域,但在 yaml 中保留静态路由规则

如何从我在 Google App Engine SDK 上运行的 Python 应用程序访问本地 MySQL 实例?

从 Google App Engine 发送请求