2010-12-01 130 views
1

我已經通讀了一些類似的問題,但沒有一個能夠解決我的問題。我正在運行一個掛鉤應用程序,並使用SQLAlchemy連接到2個數據庫。通過配置文件配置的主節點完美無缺地工作。我試圖通過初始化在模型中定義像這樣一類連接到第二個數據庫:sqlalchemy mysql服務器已經消失

class DB2(object): 

    def __init__(self): 
    self.engine = sa.create_engine('mysql://someaddress:3306/database', echo=False, pool_recycle=1800) 
    self.meta = sa.MetaData(self.engine) 

    <define tables> 

    <define mappings> 

    Session = orm.sessionmaker(bind=self.engine, autoflush=False, autocommit=False) 
    self.session = Session() 

我認爲定義pool_recycle那裏(帶有匹配我的工作數據庫的時間),就足以防止這種,但事實並非如此。任何人都可以推薦解決方案謝謝。

回答

2

我最近有同樣的問題,並通過確保它始終關閉事務,即使在SELECT之後解決它。只需將DB2.session.commit()添加到您對它進行某些操作的每個位置,並且它應該開始循環連接。