1

我有一个 Plone 4 站点,它通过一个Z Psycopg 2 Database Connection对象使用一个额外的 Postgres 数据库。project_suffix由于 ZODB 有时会出于测试和开发目的而复制,因此在命名方案中存在一些数据库连接对象;这样,我可以通过buildout配置脚本选择现有的数据库适配器之一。

但是,我注意到当 Plone 启动时,所有现有的数据库连接对象显然都打开了。我不知道这是否是一个真正的问题(例如,将更改应用到另一个实例的数据库架构时),但我宁愿让 Plone打开实际使用的单个数据库。我怎样才能做到这一点?

(克隆 4.2.4、Postgres 9.1.9、psycopg2 2.5.1、Debian Linux)

更新: 我在我的产品中添加了一些代码__init__.py,大致如下所示:

from Shared.DC.ZRDB.Connection import Connection
...
dbname = env['DATABASE']
db = None
for id, obj in portalfolder.objectItems():
    if isinstance(obj, Connection):
        if id == dbname:
            db = obj
        else:
            print 'before:', obj._v_connected
            obj._v_database_connection.close()
            print 'after: ', obj._v_connected

但是,这似乎不起作用;我知道没有例外,但是对于beforeafter,我都会得到一个时间戳,然后在查看 ZMI 时,连接似乎是打开的。

请问有什么想法吗?

4

0 回答 0