我有一些標準的SQLAlchemy模型,可以跨項目重複使用。事情是這樣的:跨項目重用SQLAlchemy模型
from sqlalchemy import Column, Integer, String, Unicode
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class Category(Base):
__tablename__ = 'category'
id = Column(Integer, primary_key=True)
slug = Column(String(250), nullable=False, unique=True)
title = Column(Unicode(250), nullable=False)
def __call__(self):
return self.title
我希望把這個共享庫,將其導入到每一個新項目,而不是剪切和粘貼的,但我不能,因爲declarative_base
實例在單獨定義該項目。如果不止一個,他們將不會分享會話。我如何解決這個問題?
Here's another question that suggests using mixin classes。這可以工作嗎? SQLAlchemy會從mixin類準確地導入外鍵嗎?
你拿後此基礎對象在做什麼?最後我記得,我能夠通過將多個元數據綁定到同一個引擎,將多個元數據從多個Base對象合併在一起。我可以想象,使用該引擎中的會話訪問您定義的所有表就足夠了。 – 2011-04-27 18:57:47
基礎對象沒有更多。如果綁定到元數據是我所需要的,我可以輕鬆導入並重新綁定 - 同時確保兩個單獨的應用程序不在同一個Python進程中運行。 – 2011-06-03 14:11:24