簡體   English   中英

兩個SQLAlchemy聲明性模型必須共享相同的declarative_base()嗎?

[英]Must two SQLAlchemy declarative models share the same declarative_base()?

如果兩個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))

我在單個會話中成功使用了不同的聲明性基礎。 這在使用多個數據庫時非常有用:每個基礎都使用自己的元數據創建,每個元數據都綁定到單獨的數據庫。 一些聲明性基礎可以定義其他方法,也可以使用另一個元類來安裝擴展。

單獨的基類可以正常工作。

在使用不同的數據庫連接時,您必須要小心,在這種情況下,您不能在兩個數據庫中使用連接 - 每個查詢都需要轉到一個數據庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM