2010-12-01 155 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()添加到您对它进行某些操作的每个位置,并且它应该开始循环连接。