我在一个地方定义了许多需要与多个代码库共享的模型(每个代码库只需要访问模型的特定子集)。具体来说,统一的API需要查询所有这些模型,但是许多数据处理项目只需要查询特定的模型。
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class Model1(Base):
...
class Model2(Base):
...
class Model3(Base):
...
以上述为基础,是否可以拥有“动态”Base
,以便项目1可以拥有仅包含Model3
的Base,而项目2具有包含{{ {1}}和Model1
。
解决方案是每个项目声明一个“空”Base,将整个模型拆分成段,然后为每个项目导入他们需要的每个“sub-Base”,并将其合并到他们自己的空基地。从SQLALchemy的文档中我无法判断这是否可能。
理想情况下,能够导入特定模型并将其添加到我自己的Base中是最佳选择。