Det næste er måske ikke et præcist svar på dit problem, men hvad jeg selv prøvede - med held - er at bruge en legehus.Proxy instans for hvert skema, jeg vil bruge, og referer til en tilsvarende proxy i innerclass Meta. Jeg gætter på, at dette også vil fungere uden proxyer. Det ser dog ud til, at du leder efter forespørgsler på tværs af skemaer og allerede har fundet ud af, hvad jeg fandt på lige nu.
#!/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')
Nå, dette er muligt med håndlavet kode fra pwiz.py. Jeg er sikker på, at der er en mere elegant og doven (dvs. ikke ivrig ) måde at gøre dette også ved at bruge en slags fabrik, men jeg brugte ikke meget tid på Python eller PeeWee endnu. Hvis det er tilfældet, burde pwiz.py også have et ekstra flag til dette formål.