我有一个Zope/Plone 4.3环境,我们用它z3c.saconfig来配置内部产品中的数据库(Oracle)设置.
我需要将通常的SQLAlchemy的池类型更改QueuePool为NullPool.但是,有没有办法使用它z3c.saconfig?
z3c.saconfig委托创建SQLAlchemy引擎到IEngineFactory实用程序; 看到界面来源.
您可以创建自己的子类以注册为本地实用程序.您的子类可以重用现有的实用程序实现,覆盖该configuration()方法:
from persistent import Persistent
from z3c.saconfig.utility import EngineFactory
from sqlalchemy.pool import NullPool
class NullPoolEngineFactory(Persistent, EngineFactory)
def configuration(self):
kwargs = self._kw.copy()
kwargs['poolclass'] = NullPool
return self._args, kwargs
Run Code Online (Sandbox Code Playgroud)
上面sqlalchemy.create_engine()通过添加参数来扩充函数的poolclass参数.
您将此实用程序注册为GenericSetup配置文件中的组件:
<?xml version="1.0"?>
<componentregistry>
<utilities>
<utility
interface="z3c.saconfig.interfaces.IEngineFactory"
factory="yourproject.yourmodule.NullPoolEngineFactory"/>
</utilities>
</componentregistry>
Run Code Online (Sandbox Code Playgroud)
运行通用设置配置文件后,它会注册该实用程序的持久版本,并且可以找到它而不是默认的全局实用程序.
| 归档时间: |
|
| 查看次数: |
93 次 |
| 最近记录: |