Следващото може би не е точен отговор на вашия проблем, но това, което опитах лично - успешно - е използването на playhouse.Proxy екземпляр за всяка схема, която искам да използвам, и се позовавам на съответен прокси във вътрешния клас Meta. Предполагам, че това ще работи и без прокси. Изглежда обаче, че търсите запитвания за кръстосани схеми и вече разбрахте какво измислих току-що.
#!/usr/bin/python
import sqlite3
import peewee
from peewee import *
from playhouse.proxy import *
database_a_proxy = Proxy()
database_b_proxy = Proxy()
class BaseModelA(Model):
class Meta:
database = database_a_proxy
class BaseModelB(Model):
class Meta:
database = database_b_proxy
class RelationInSchemaA(BaseModelA):
textfield = CharField()
class RelationInSchemaB(BaseModelB):
textfield = CharField()
database_a = SqliteDatabase('schemaA', **{})
database_b = SqliteDatabase('schemaB', **{})
database_a_proxy.initialize(database_a)
database_b_proxy.initialize(database_b)
try:
RelationInSchemaA.create_table()
RelationInSchemaB.create_table()
except:
pass
RelationInSchemaA.create(textfield='Hello')
RelationInSchemaB.create(textfield='PeeWee')
Е, това е възможно с ръчно генериран код от pwiz.py. Сигурен съм, че има по-елегантен и помързелив (т.е. не съм нетърпелив ) начин да направя и това, като използвам някаква фабрика, но все още не отделих много време на Python или PeeWee. Ако е така, pwiz.py трябва да има и допълнителен флаг за тази цел, предполагам.