gpt4 book ai didi

python - 在 SQLAlchemy 中为分片动态设置 __tablename__?

转载 作者:IT老高 更新时间:2023-10-29 00:14:07 30 4
gpt4 key购买 nike

为了处理不断增长的数据库表,我们对表名进行分片。所以我们可以有这样命名的数据库表:

table_md5one
table_md5two
table_md5three

所有表都具有完全相同的架构。

我们如何使用 SQLAlchemy 并为对应的类动态指定 tablename?看起来 declarative_base() 类需要预先指定 tablename

最终将有太多的表来手动指定来自父/基类的派生类。我们希望能够构建一个可以动态设置表名的类(可能作为参数传递给函数。)

最佳答案

好的,我们使用自定义 SQLAlchemy 声明而不是声明性声明。

所以我们像这样创建一个动态表对象:

from sqlalchemy import MetaData, Table, Column

def get_table_object(self, md5hash):
metadata = MetaData()
table_name = 'table_' + md5hash
table_object = Table(table_name, metadata,
Column('Column1', DATE, nullable=False),
Column('Column2', DATE, nullable=False)
)
clear_mappers()
mapper(ActualTableObject, table_object)
return ActualTableObject

其中 ActualTableObject 是映射到表的类。

关于python - 在 SQLAlchemy 中为分片动态设置 __tablename__?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19163911/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com