[英]Share Declarative_Base (SQLAlchemy) with Singleton in Python
[英]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.