SQLAlchemy で Firebird その2
- その0 準備
- その1 テーブル定義関連
- その2 接続関連(いまここ)
- その3 クエリー関連(ORM 版)
DB 接続まわり。
Engine
Firebird を使用するには create_engine にて firebird+kinterbasdb を指定する。次のようになる。
engine = create_engine('firebird+kinterbasdb://user:password@host/dbalias')
Firebird に限らない設定は Database Engine Options にて。とりあえず 3 つだけメモ。
- connect_args
- DBAPI の connect メソッドオプションを直接指定できる。 kinterbasdb だと connect={'charset': 'UTF8'} 指定で接続時のエンコーディングを指定したり。
- echo
- 標準出力 sys.stdout に SQLAlchemy のログを出力する。どのような SQL 文が実行されたのかを知る最も簡単な方法だったりする。デフォルト False 。 dbengine-logging も参照。
- encoding
- SQLAlchemy レベルで 8 ビット文字列、ユニコード文字列間の変換を行う際に用いる文字コード。デフォルト 'utf-8' 。各 DBAPI 自身がユニコード変換機能を提供していることも多く、その場合は指定されていても無視される?
firebird+kinterbasdb 指定時のみ使える特有の設定は以下。
- type_conv
- type_conv code を指定する。デフォルトは 200 。 kinterbasdb 3.3 より 300 が加わった模様。
- concurrency_level
- concurrency-level を指定する。デフォルトは 1 。
- enable_rowcount
- Update, Delete クエリの後、実際に操作したデータ数を得られるようにする。デフォルトは True 。
マニュアルで関連する箇所は Engine Configuration とか Firebird 。