@rosperitus

Использование одной модели Peewee (ORM) на множество БД?

Подскажите, как можно использовать определенные модели Peewee на несколько баз данных Sqlite (не через стандартный модуль, а через APSW). Много баз данных будут с одинаковой структурой (3 таблицы, и 100к записей).
Способ с peewee.Proxy() не подошел (каждый раз нужно проводить инициализацию).

Пример с peewee.Proxy()

# -*- coding: utf-8 -*-

import peewee
from playhouse.apsw_ext import APSWDatabase

# Создаем прокси
database_proxy = peewee.Proxy()

class BaseModel(peewee.Model):
    # Объявляем прокси вместо базы данных
    class Meta:
        database = database_proxy

class Simple(BaseModel):
    name = peewee.CharField()

# БД №1
database1 = APSWDatabase('E:/Temp/simple1.db')
# БД №2
database2 = APSWDatabase('E:/Temp/simple2.db')

# Инициализируем прокси для БД №1
database_proxy.initialize(database1)
try:
# try потому что, APSW ругается на создание таблицы, 
# которая уже существует (игнорирует safe=True)
    database1.create_tables([Simple], safe=True)
except:
    pass

Simple.create(name='name1')
# Инициализируем прокси для БД №2
database_proxy.initialize(database2)
try:
    database2.create_tables([Simple], safe=True)
except:
    pass
Simple.create(name='name2')

database1.close()
database2.close()
  • Вопрос задан
  • 2918 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы