SQLAlchemy和kinterbasdb在mod wsgi下的单独应用程序中

2024-05-13 04:54:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试用turbogears和sqlalchemy开发一个应用程序。 在同一台服务器上,已经有一个使用kinterbasdb的应用程序直接位于mod wsgi下。 当两个应用程序都被使用时,两个应用程序似乎都没有意识到kinterbasdb已经初始化 在不同的应用程序中使用sqlalchemy和kinterbasdb,我是否遗漏了一些不明显的东西?为了确保只有一个kinterbasdb实例被初始化并且两个应用程序都使用该实例,有人有什么建议吗?在


Tags: 实例服务器mod应用程序wsgisqlalchemyturbogears建议
1条回答
网友
1楼 · 发布于 2024-05-13 04:54:56

我以为我已经把我的解决方案贴出来了。。。在

在httpd conf文件中将这两个应用程序修改为在WSGIApplicationGroup${GLOBAL}下运行 和修补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):

相关问题 更多 >