Python バージョンの App Engine を使用したいのですが、Google データ ストア専用のコードを記述するのではなく、Big Table にアタッチできる汎用の Python ORM を使用してモデルを作成したいと考えています。後で通常のデータベースを使用することをお勧めします。これを可能にする SQLAlchemy などの Python ORM はありますか?
2 に答える
技術的には、これは ORM (Object Relational Mapper) ではなく、DAL (Database Abstraction Layer) と呼ばれます。ORM 部分は、API が既にオブジェクト マッピングを処理し、いくつかの単純なリレーショナル マッピングを行っているため、AppEngine にとってあまり興味深いものではありません (RelationProperty を参照)。
また、DAL では、AppEngine のデータストアと mysql などの「通常の」SQL データベースを切り替えることはできません。これは、動作が大きく異なるためです。reddis、mongo、tokyo Cabinet など、さまざまなキー バリュー ストアを切り替えることができます。しかし、それらはすべて非常に異なる特性を持っているため、1つを使用する前によく考えてください.
最後に、DAL は伝統的に DB インターフェイスの上にありますが、AppEngine の API を使用すると、API で他のストレージ バックエンドを基本的に使用できるようにする独自の「スタブ」を実装できます。Mongo の人々が MongoDB 用に作成したものは非常に優れています。また、dev_appserver にはファイルシステム ベースのサーバーが付属しています。
そして今、答えに:はい、1つあります!これはweb.pyの一部です。上記の理由で実際に試していないので、良いかどうかはわかりません。
PS。Rubyにもキーバリューストア用の素晴らしいDALプロジェクトがあることは知っていますが、今は見つけられません...いつかPythonに移植するのがいいかもしれません.
Google が Cloud SQL をローンチして以来、現在ではそうしています。