PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

So beheben Sie OperationalError:(psycopg2.OperationalError) Der Server hat die Verbindung unerwartet geschlossen

Gleiche Logik für sqlalchemy.orm, (auf dem Flask_sqlalchemy übrigens basiert)

engine = sqlalchemy.create_engine(connection_string, pool_pre_ping=True)

Weitere Schutzstrategien können eingerichtet werden, wie im Dokument beschrieben:https://docs.sqlalchemy.org/en/13/core/pooling.html#disconnect-handling-pessimistic

Hier ist zum Beispiel meine Engine-Instanziierung:

engine = sqlalchemy.create_engine(connection_string,
                                      pool_size=10,
                                      max_overflow=2,
                                      pool_recycle=300,
                                      pool_pre_ping=True,
                                      pool_use_lifo=True)

sqlalchemy.orm.sessionmaker(bind=engine, query_cls=RetryingQuery)

Für RetryingQuery-Code siehe:Retry failed sqlalchemy querys