SQLAlchemy

SQLAlchemy単体で使用する場合のmodule_setup例

http://d.hatena.ne.jp/aodag/20070306/1173202454 のTGに頼らない方法 import model from sqlalchemy import * def setup_module(module): dburi = "sqlite:///:memory:" engine = create_engine(dburi) engine.echo = 1 model.metadata.connect(engine) mo…

TurboGearsでSQLALchemyを使用している場合にpy.testでモデルをテストする方法

test.cfgでdburiをテスト用のDB接続に設定する。 以下はSqliteのオンメモリDBを使う例 sqlalchemy.dburi = "sqlite:///:memory:" model.py内のセットアップを以下のようにする。 def setup_module(module): database.bind_meta_data() database.metadata.eng…

SQLAlchemyのIdentityモデル

TurboGearsのモデルはデフォルトでSQLObjectを使うようになっている。 オプションで、SQLAlchemyを使うことができて、quickstart時の設定でIdentityを使用するようにすると、IdentityモデルもSQLAlchemyのものになる。 このとき、ActiveMapperが使用されてい…

many-to-manyマッピング使用時の注意

ひたすら試すのだ。 して、SQLAlchemyのウリのひとつとして、高性能なone-to-manyやmany-to-manyマッピングがあります。 へたなマッピング実装だと、n:mで、n+1回クエリ投げちゃったりして大変なのですが、 とりあえずそのへんは、定義時にlazyオプションで…

2.0だとテーブルエイリアスでAS が使えないのね

わざわざFirebird2.0でSQLAlchemyを試すという茨の道を選択。 Firebird2.0ではテーブルエイリアス指定時に AS キーワードが使えなくなっている。 現行バージョンの2.8.0では、そこが引っかかってJOIN関係のクエリが通らなくなっている。 とりあえずSVNカレン…