peewee - 动态修改数据库模型元(例如模式)

2024-01-03

为了将相同的数据插入到不同架构中的同一组表中(有关移动应用程序的数据,其中应用程序 ID 是主键,但应用程序是跨平台的并且存在于不同平台上。每个平台的架构,因此 pp id 不会干扰具有它作为fk)。

我已经拥有了一些基础设施,但我没想到会有这样的要求。对我来说,最简单的方法是将现有模型类绑定到某些 db+schema_1+table_name 将数据插入第一个模式,然后以某种方式将类元更新为 db+schema_2+table_name 并再次调用插入。

例如,如果我有以下带有元集的基类:

class BaseClass_1:
    class Meta_1:
        legacy_table_names = False
        database = db
        schema = 'schema_1'

以及另一个模式的另一个元:

class Meta_2:
    legacy_table_names = False
    database = db
    schema = 'schema_2'
    primary_key = CompositeKey('app_id')
    db_table = 'table_name'

和模型类:

class Table(BaseClass_1):
    date = DateTimeField()
    app_id = TextField()

    class Meta:
        primary_key = CompositeKey('app_id')
        db_table = 'table_name'

那么如果我执行以下操作:

Table.insert_many(some_data)
Table._meta = Meta_2
Table._meta = Meta_2()

我看到设置了元类或对象,而不是修改之前的“元数据”对象。不幸的是我没有找到如何实例化元数据对象。有没有可能,这个研究方向有希望吗?


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

peewee - 动态修改数据库模型元(例如模式) 的相关文章

随机推荐