Я пытаюсь разработать приложение с использованием турбогеров и sqlalchemy. Существует уже существующее приложение, использующее kinterbasdb непосредственно в mod_wsgi на том же сервере. Когда оба приложения используются, ни один из них не признает, что kinterbasdb уже инициализирован Есть ли что-то неочевидное, что мне не хватает использования sqlalchemy и kinterbasdb в отдельных приложениях? Чтобы убедиться, что только один экземпляр kinterbasdb инициализирован, и оба приложения используют этот экземпляр, есть ли у кого-нибудь предложения?SQLAlchemy и kinterbasdb в отдельных приложениях в mod_wsgi
0
A
ответ
1
Я думал, что я отправил свое решение уже ...
Изменения оба приложений для запуска под WSGIApplicationGroup $ {GLOBAL} в их HTTPd конф файла и заплаты sqlalchemy.databases.firebird.py, чтобы проверить, если self.dbapi .initialized это правда перед вызовом self.dbapi.init (... был единственный способ, которым я мог управлять, чтобы получить этот сценарий установки и запуска
SQLAlchemy 0.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 @@ global _initialized_kb if not _initialized_kb and self.dbapi is not None: _initialized_kb = True - self.dbapi.init(type_conv=type_conv, concurrency_level=concurrency_level) + if not self.dbapi.initialized: + self.dbapi.init(type_conv=type_conv, concurrency_level=concurrency_level) return ([], opts) def create_execution_context(self, *args, **kwargs):