我正在为多个数据库模式实现一组sqlalchemy声明性模型。这些数据库模式在表设计中非常相似。我希望能够在每个模式的模型集合中重用尽可能多的通用模型代码(列定义、关系等)。 (请注意,所讨论的模式99%相同。)
举个小例子:
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Integer, String
Base = declarative_base()
class Person(Base):
__tablename__ = 'person'
name = Column(String, primary_key=True)
age = Column(Integer)
如果我现在想引入一个新的属性Person-column'height',它只存在于一个模式中,而不存在于另一个模式中,那么如何在重用现有的Person列定义的同时定义它呢?在
然后尝试从mixin中继承这些特定的声明性基,然后使用mixin定义这些特定的类。然而,这并不令人满意,因为即使是大多数相同的模型也必须声明为mixin,并且声明类也必须为schema声明一次(继承自适当的基和mixin)。考虑到模式是相似的,这看起来像是很多样板代码。在
有更好的方法吗?在
目前没有回答
相关问题 更多 >
编程相关推荐