1

私はturbogearsとsqlalchemyを使用してアプリを開発しようとしています。同じサーバーのmod_wsgiの直下にkinterbasdbを使用する既存のアプリがすでに存在します。両方のアプリを使用すると、どちらもkinterbasdbがすでに初期化されていることを認識していないようです。別々のアプリでsqlalchemyとkinterbasdbを使用することについて、私が見逃している非自明なものはありますか?kinterbasdbの1つのインスタンスのみが初期化され、両方のアプリがそのインスタンスを使用するようにするために、誰か提案がありますか?

4

1 に答える 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 に答える