SQLAlchemy:分叉代码中的automap_base

问题描述

我开发了一个API服务器,该服务器与MysqL DB进行交互以反映其架构,并且可以处理多个进程。我的数据库工作代码如下:

from sqlalchemy import MetaData
from sqlalchemy.ext.automap import automap_base
from sqlalchemy.orm.session import Session

my_engine = create_engine_by_info(my_config)
Metadata = MetaData(bind=my_engine)
Base: type = automap_base(Metadata=Metadata)

class User(Base):
    __tablename__ = 'auth_user'
    # Relation descriptions...

# Other classes...

Base.prepare(my_engine,reflect=True)

def find_user(field):
    with Session(my_engine) as session:
        query = session.query(User)
        query = query.filter(User.field == field)
        records = query.all()
        for u in records:
            return u
        return None

在子进程工作之前,它工作正常:子进程工作后,原始的子进程失去了连接:Lost connection to MysqL server during query

我想我应该为每个进程分开my_engine(例如,一些函数,其中包含一个引擎的字典,其中键是PID),但是如果我的类定义在开始时需要一个引擎,该怎么办?也许我也可以在一个函数中移动类,但这将是一个地狱...那么,这里有什么好的解决方案?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)