如果两个 SQLAlchemy 模型必须参与同一个 Session,是否有必要继承同一个 declarative_base()
实例?导入定义 SQLAlchemy 模型的两个或多个模块时很可能就是这种情况。
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class SomeClass(Base):
__tablename__ = 'some_table'
id = Column(Integer, primary_key=True)
name = Column(String(50))
Base2 = declarative_base()
class AnotherClass(Base2):
__tablename__ = 'another_table'
id = Column(Integer, primary_key=True)
name = Column(String(50))
最佳答案
我在单个 session 中成功地使用了不同的声明基础。这在使用多个数据库时很有用:每个库都使用自己的元数据创建,并且每个元数据都绑定(bind)到单独的数据库。您的一些声明性基础可以定义其他方法,或者它们可以使用另一个元类来安装扩展。
关于python - 两个 SQLAlchemy 声明模型必须共享同一个 declarative_base() 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1589748/