अगला शायद आपकी समस्या का सटीक उत्तर नहीं है, लेकिन जो मैंने स्वयं करने की कोशिश की - सफलतापूर्वक - एक playhouse.Proxy का उपयोग कर रहा है प्रत्येक स्कीमा के लिए उदाहरण जिसका मैं उपयोग करना चाहता हूं, और इनरक्लास मेटा में संबंधित प्रॉक्सी का संदर्भ लें। मुझे लगता है कि यह प्रॉक्सी के बिना भी काम करेगा। हालांकि, ऐसा लगता है कि आप क्रॉस-स्कीमा प्रश्नों की तलाश कर रहे हैं, और पहले ही पता लगा लिया है कि मैं अभी क्या लेकर आया हूं।
#!/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 से जनरेट किए गए कोड को हैंडक्राफ्ट करने से संभव है। मुझे यकीन है कि एक और अधिक सुंदर और आलसी है (यानी उत्सुक नहीं ) ऐसा करने का तरीका भी, किसी प्रकार की फैक्ट्री का उपयोग करना, लेकिन मैंने अभी तक पायथन और न ही PeeWee पर ज्यादा समय नहीं बिताया। यदि ऐसा है, तो मुझे लगता है कि इस उद्देश्य के लिए pwiz.py के पास एक अतिरिक्त ध्वज भी होना चाहिए।