2008-09-30 2 views
0

Я пытаюсь разработать приложение с использованием турбогеров и sqlalchemy. Существует уже существующее приложение, использующее kinterbasdb непосредственно в mod_wsgi на том же сервере. Когда оба приложения используются, ни один из них не признает, что kinterbasdb уже инициализирован Есть ли что-то неочевидное, что мне не хватает использования sqlalchemy и kinterbasdb в отдельных приложениях? Чтобы убедиться, что только один экземпляр kinterbasdb инициализирован, и оба приложения используют этот экземпляр, есть ли у кого-нибудь предложения?SQLAlchemy и kinterbasdb в отдельных приложениях в mod_wsgi

ответ

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): 

Смежные вопросы