2009-06-18 238 views

回答

12

我花了一些時間,試圖回答同樣的問題......在我看來,最困難轉移到GAE的事情是Django的模型 ...在這個意義上,他們需要進行各種修改和反思,主要是因爲GAE的後端不是標準的關係數據庫,而是谷歌的BigTable。我發現了一個很好的介紹這個位置:

http://www.youtube.com/watch?v=rRCx9e38yr8

不管怎麼說,這是值得下載這些「補丁」之一,並與它去!

對我來說,最好的解決方案是'應用程序引擎修補程序'。我下載了示例項目,並立即開始工作! (請注意,您需要單獨安裝GAE的SDK)對我來說,殺手特性是這樣的事實:django-admin和許多其他經典的django功能也已被移植!

http://code.google.com/p/app-engine-patch/

documentation仍然在我看來相當小的,但它足以讓你去。它會幫助你瀏覽官方的GAE文檔!

+1

我發現應用程序引擎修補程序是PIA。它總是尋找一些奇怪的python模塊,通常會返回更奇怪的錯誤,並且功能與django runserver完全不同。 – drozzy 2009-12-02 13:59:40

+0

這個補丁是否更好,Django-Nonrel? – 2011-02-27 20:16:45

+1

注意:應用程序引擎修補程序已過時並已被放棄。不要使用它。 – dfrankow 2012-08-12 19:10:05

0

疼痛的程度取決於您希望重複使用多少現有代碼。不幸的是,由於Datastore不支持SQL,你通常不能只使用任何可插入Django的應用程序並將其用於GAE項目。

應用引擎補丁http://code.google.com/p/app-engine-patch/看起來比其他django助手在將標準應用程序(網站,ContentTypes,Flatpages)帶到GAE時領先一步。我已經在幾個gae項目上使用了app-engine-patch,一旦你理解了如何將django-sql模型移植到django-gae模型並將sql轉換爲數據存儲查詢,事情可以很快完成 - 但總會有一個學習曲線。

appengine-helper試圖通過提供模型來彌合數據存儲間隙,因此您不必更改模型超類,但是我發現最終必須更改ManyToMany關係和任何SQL,所以優勢最終是最小的。 ae-patch有一個嘗試提供ae-datastore後端的路線圖,但它可能不會發生一段時間。

6

您需要使用django-nonrelsource)。

你仍然會發現問題負載:不支持

  • Many2Many關係
  • 虛假連接的查詢
  • App Engine不容許與插座或C依賴任何蟒蛇LIB的增加數(哨兵,lxml ...)

您可以嘗試儘早訪問CloudSQL

否則你不約束使用App Engine,您可以考慮使用:

更便宜,更靈活地支持要求的文件,如畫中畫。

0

谷歌已經推出了他們的雲SQL存儲。這實際上是雲5.5中的MySQL 5.5。 IMO是將Django應用程序遷移到雲中的一種非常好的方式。他們有一個免費試用到2013年6月1日。

如果您需要一些提示如何設置您的Django項目Appengine和雲SQL我寫了tutorial for that