SQLAlchemy и kinterbasdb в отдельных приложениях под mod_wsgi - PullRequest
0 голосов
/ 01 октября 2008

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

1 Ответ

1 голос
/ 06 октября 2008

Я думал, что уже опубликовал свое решение ...

Изменение обоих приложений для работы под WSGIApplicationGroup $ {GLOBAL} в их файле httpd conf и исправление 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):

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...