1 回答
TA贡献1848条经验 获得超10个赞
好的,我想我找到了一种“有效”的方法:
from django.conf import settings
from django.db import connection
from sqlalchemy.pool import NullPool
from sqlalchemy import create_engine as sa_create_engine
def do_nothing(dbapi_connection):
return
def create_engine(db_name='default'):
db = settings.DATABASES[db_name]
conn_string = 'postgresql://{}{}@{}:{}/{}'.format(
db['USER'],
':' + db['PASSWORD'] if db['PASSWORD'] else '',
db['HOST'],
db['PORT'],
db['NAME']
)
engine = sa_create_engine(
conn_string,
poolclass=NullPool,
creator=lambda: connection.connection
)
engine.dialect.do_close = do_nothing
engine.dialect.do_commit = do_nothing
engine.dialect.do_rollback = do_nothing
return engine
请注意,它还没有经过全面测试,它是更多类型的实验代码。它假定connection.connection已初始化并打开。非常感谢任何评论。
添加回答
举报
