我们需要创建 SQLAlchemy 类来访问多个外部数据源,这些数据源的数量会随着时间的推移而增加。我们为核心 ORM 模型使用声明性基础,我知道我们可以使用 autoload=True 手动指定新的 ORM 类来自动生成映射。
问题是我们需要能够动态生成它们,如下所示:
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
stored={}
stored['tablename']='my_internal_table_name'
stored['objectname']='MyObject'
并将其动态地变成这样的东西:
class MyObject(Base):
__tablename__ = 'my_internal_table_name'
__table_args__ = {'autoload':True}
我们不希望类的持续时间超过打开连接、执行查询然后关闭连接所需的时间。因此,理想情况下,我们可以将上面“存储”变量中的项目放入数据库中,并根据需要拉取它们。另一个挑战是对象名称(例如“MyObject”)可能用于不同的连接,因此我们无法定义一次并保留它。
任何关于如何实现这一点的建议将不胜感激。
谢谢...