Для вставки одних и тех же данных в один и тот же набор таблиц в разных схемах (данные о мобильном приложении, где идентификатор приложения является первичным ключом, но приложение кросс-платформенное и существует на разных платформах. Схема для каждой платформы, поэтому идентификатор pp не мешаетдля таблиц с fk).
У меня уже есть некоторая инфраструктура для этого, и я не ожидал этого требования. Для меня я вижу, что самый простой способ - это связать существующий класс модели с некоторыми вставками данных db + schema_1 + table_name в первую схему, а затем каким-то образом обновить метаданные classs до db + schema_2 + table_name и снова вызвать insert.
Например,если у меня есть следующий базовый класс с установленным Meta:
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()
Я вижу, что есть мета-класс или объект устанавливается вместо объектов "Метаданные", как это было до модификации. К сожалению, я не нашел, как создать экземпляр объекта Metadata. Возможно ли, это направление исследований обнадеживает?