私はturbogearsとsqlalchemyを使用してアプリを開発しようとしています。同じサーバーのmod_wsgiの直下にkinterbasdbを使用する既存のアプリがすでに存在します。両方のアプリを使用すると、どちらもkinterbasdbがすでに初期化されていることを認識していないようです。別々のアプリでsqlalchemyとkinterbasdbを使用することについて、私が見逃している非自明なものはありますか?kinterbasdbの1つのインスタンスのみが初期化され、両方のアプリがそのインスタンスを使用するようにするために、誰か提案がありますか?
質問する
270 次
1 に答える
2
私はすでに私の解決策を投稿したと思いました...
httpdconfファイルのWSGIApplicationGroup${GLOBAL}で実行するように両方のアプリを変更し、sqlalchemy.databases.firebird.pyにパッチを適用して、self.dbapi.init(...を呼び出す前にself.dbapi.initializedがTrueかどうかを確認します。このシナリオをなんとか立ち上げて実行することができました
。SQLAlchemy0.4.7パッチ:
diff -Naur SQLAlchemy-0.4.7 / lib / sqlalchemy / databases / firebird.py SQLAlchemy-0.4.7.new / lib / sqlalchemy / databases / firebird.py --- SQLAlchemy-0.4.7 / lib / sqlalchemy / databases / firebird.py 2008-07-26 12:43:52.000000000 -0400 +++ SQLAlchemy-0.4.7.new/lib/sqlalchemy/databases/firebird.py 2008-10-01 10:51:22.000000000 -0400 @@ -291,7 +291,8 @@ グローバル_initialized_kb _initialized_kbでなく、self.dbapiがNoneでない場合: _initialized_kb = True --self.dbapi.init(type_conv = type_conv、concurrency_level = concurrency_level) + self.dbapi.initializedでない場合: + self.dbapi.init(type_conv = type_conv、concurrency_level = concurrency_level) return([]、opts) def create_execution_context(self、* args、** kwargs):
于 2008-10-06T18:39:22.887 に答える