python - 两个 SQLAlchemy 声明模型必须共享同一个 declarative_base() 吗?

标签 python orm sqlalchemy

如果两个 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/

相关文章:

python - 线程和 SQLAlchemy session

flask - 设置多对多sqlalchemy flask app sqlite db的插入顺序

Python 2.7 运行 py 时找不到模块。但可以在终端中找到模块

python - 在 pdf weasyprint 中附加 img 文件

entity-framework - ORM 大容量数据库

c# - ORM架构

python - Cython:如何使用用户定义的 C++ 类转换?

python - 访问我的网站页面后无法登录管理页面

PHP:我可以与我的数据库表结构一起使用的 ORM 框架或库

python - SQLAlchemy : Column name on union_all