2010-12-01 11 views
1

Ich habe eine Reihe von ähnlichen Problemen gelesen, aber keine scheint mein Problem zu beheben. Ich betreibe eine Pylonen-App und verwende SQLAlchemy, um eine Verbindung zu 2 Datenbanken herzustellen. Das primäre, konfiguriert über die Konfigurationsdatei funktioniert einwandfrei ohne Problem. Ich versuche, auf eine zweite Datenbank zu verbinden, indem Sie eine Klasse in Modell wie so definiert Initialisierung:sqlalchemy mysql server ist weggegangen

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() 

Ich dachte, dass es die pool_recycle definieren (mit einer Zeit, die meine Arbeits Datenbank übereinstimmt) würde ausreichen, um dies zu verhindern , aber es ist nicht. Kann jemand eine Lösung empfehlen? Vielen Dank.

Antwort

2

Ich hatte vor kurzem dasselbe Problem und löste es, indem ich sicherstellte, dass es die Transaktion immer schließt, auch nach SELECTs. Fügen Sie einfach DB2.session.commit() zu jeder Stelle hinzu, an der Sie etwas damit machen, und es sollte Verbindungen zyklisch starten.

Verwandte Themen