具有动态基础的声明性模型(SQLAlchemy)

时间:2017-06-13 15:55:07

标签: python sql python-3.x sqlalchemy declarative

我在一个地方定义了许多需要与多个代码库共享的模型(每个代码库只需要访问模型的特定子集)。具体来说,统一的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中是最佳选择。

0 个答案:

没有答案