PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

comment réparer OperationalError :(psycopg2.OperationalError) le serveur a fermé la connexion de manière inattendue

Même logique pour sqlalchemy.orm, (sur lequel est basé flask_sqlalchemy)

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

D'autres stratégies de protection peuvent être configurées comme décrit dans la doc :https://docs.sqlalchemy.org/en/13/core/pooling.html#disconnect-handling-pessimistic

Par exemple, voici mon instanciation de moteur :

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)

Pour le code RetryingQuery, cf :Réessayer les requêtes sqlalchemy ayant échoué