如果兩個SQLAlchemy模型必須參與相同的會話,是否需要從declarative_base()
的同一實例繼承?導入兩個或多個定義SQLAlchemy模型的模塊時,情況可能如此。必須有兩個SQLAlchemy聲明模型共享相同的declarative_base()嗎?
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))
您也可以使用帶有binds = {Class:database,...}參數的單個Session。 – joeforker 2009-10-19 18:30:05
當然。但是,這種綁定字典在變得龐大時很難維護。雖然我說從幾個元數據對象自動構造它。 – 2009-10-20 03:52:03