PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

È possibile emettere un VACUUM ANALYZE da psycopg2 o sqlalchemy per PostgreSQL?

Questo è un difetto nella DB-API Python:avvia una transazione per te. Non dovrebbe farlo; se e quando avviare una transazione dovrebbe spettare al programmatore. API di base di basso livello come questa non dovrebbero fare da babysitter allo sviluppatore e fare cose come avviare transazioni alle nostre spalle. Siamo grandi ragazzi:possiamo iniziare le transazioni da soli, grazie.

Con psycopg2, puoi disabilitare questo comportamento sfortunato con un'estensione API:esegui connection.autocommit = True . Sfortunatamente non esiste un'API standard per questo, quindi devi dipendere da estensioni non standard per emettere comandi che devono essere eseguiti al di fuori di una transazione.

Nessun linguaggio è privo di verruche, e questo è uno di Python. Anche io sono stato morso da questo.