启动Plone时选择单个活动数据库连接

时间:2013-11-05 10:06:19

标签: python database database-connection plone psycopg2

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

但是,我注意到Plone启动时显然打开了所有现有的数据库连接对象。我不知道这是否是一个真正的问题(例如,当将更改应用于另一个实例的数据库的模式时),但我宁愿让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时,连接似乎是开放的。

请问任何想法?

0 个答案:

没有答案