2009-06-18 22 views

答えて

12

私は同じ質問に答えるためにしようといくつかの時間を過ごした... GAEに転送するための最も困難な事はDjangoのモデルているように私には思える...という意味で、彼ら主にGAEのバックエンドは標準的なリレーショナルDBではありませんが、GoogleのBigTableのように、さまざまな修正と再考が必要です。私はこのここに素敵なイントロが見つかりました:

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

とにかく、それはそれらの「パッチ」のいずれかをダウンロードし、それを行く持っている価値があります!

私にとって最高の解決策は、 'app-engine-patch'です。私はサンプルプロジェクトをダウンロードし、それはすぐに働いた! (GAEのSDKを別途インストールする必要があることを心に留めてください)django-adminとその他の古典的なジャンゴ機能が移植されています。

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

documentationはまだ私の意見では、非常に最小限のですが、それはあなたが軌道に乗るためには十分です。それは公式のGAEのドキュメントをスキミングするのに役立ちます!

+1

アプリエンジンのパッチがPIAであることが判明しました。常にいくつかの奇妙なpythonモジュールを探し、しばしばwierdエラーを返し、django runserverとはまったく異なる機能をしばしば返します。 – drozzy

+0

このパッチはDjango-Nonrelよりも優れていますか? –

+1

注:app-engine-patchは古くて放棄されています。それを使用しないでください。 – dfrankow

0

痛みの程度は、再利用したい既存コードの量によって異なります。残念ながら、DatastoreはSQLをサポートしていないため、しばしばジャンゴプラグ対応のアプリケーションを使用してGAEプロジェクトで使用することはできません。

App Engineパッチhttp://code.google.com/p/app-engine-patch/は、標準アプリケーション(Sites、ContentTypes、Flatpages)をGAEに持ち込む際に、他のdjangoヘルパーより先に見えます。私はいくつかのgaeプロジェクトでapp-engine-patchを使いました。そしてdjango-sqlモデルをdjango-gaeモデルに移植し、sqlをdatastoreクエリに変換する方法を理解すれば、すばやく実行できます。曲線。

モデルのスーパークラスを変更する必要がないように、モデルを提供することでAppStoreのギャップを埋めようとしますが、ManyToManyリレーションシップと任意のSQLを変更する必要があることがわかりました。利点は最小限に終わる。 ae-patchはae-datastoreバックエンドを提供しようとするロードマップを持っていますが、しばらくの間は起こらないでしょう。

3

31.01.2012、Google released App Engine 1.6.2 Djangoのすぐ使えるものをサポートしています。

+0

CloudSQLでそれを使用する必要がありますか?また、HRD Datasetre –

6

django-nonrelsource)を使用する必要があります。

あなたはまだ問題の負荷を見つける:

  • Many2Many関係がサポートされていない
  • フェイクが
  • App EngineはソケットまたはCの依存関係を持つ任意のPythonのlibが許可されていませんクエリの増加数(歩哨に参加します、lxml ...)

CloudSQLに早くアクセスすることができます。

そうでなければあなたはApp Engineのを使用するように制約されていない、あなたが使用して考えることができます:PIPのようなサポート要件ファイルと

安く、より多くの制御。

0

GoogleはCloud SQLストレージを開始しました。これは実際にはクラウド内のMySQL 5.5です。 IMOはあなたのDjangoアプリをクラウドに移行するためのとても良い方法です。彼らは2013年6月1日まで無料トライアルをしています。

AppengineとCloud SQL用にDjangoプロジェクトを設定する方法については、tutorial for thatと書いてあります。