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

Ist es möglich, eine VACUUM ANALYZE von psycopg2 oder sqlalchemy für PostgreSQL auszugeben?

Dies ist ein Fehler in der Python-DB-API:Sie startet eine Transaktion für Sie. Das sollte es nicht tun; ob und wann eine Transaktion gestartet wird, sollte dem Programmierer überlassen bleiben. Low-Level-Kern-APIs wie diese sollten den Entwickler nicht babysitten und Dinge wie das Starten von Transaktionen hinter unserem Rücken tun. Wir sind große Jungs – wir können Transaktionen selbst starten, danke.

Mit psycopg2 können Sie dieses unglückliche Verhalten mit einer API-Erweiterung deaktivieren:Führen Sie connection.autocommit = True aus . Leider gibt es hierfür keine Standard-API, daher müssen Sie sich auf nicht standardmäßige Erweiterungen verlassen, um Befehle auszugeben, die außerhalb einer Transaktion ausgeführt werden müssen.

Keine Sprache ist ohne Warzen, und dies ist eine von Pythons. Ich bin auch schon einmal davon gebissen worden.