Skip to content
Snippets Groups Projects

Ensure django database wrappers always have a connection before creating a cursor

Merged Bastien Abadie requested to merge ensure-db-connection into master
1 file
+ 7
1
Compare changes
  • Side-by-side
  • Inline
@@ -51,7 +51,13 @@ def run_pg_query(query, source_db):
Run a single Postgresql query and split the results into chunks.
When a name is given to a cursor, psycopg2 uses a server-side cursor; we just use a random string as a name.
"""
with connections[source_db].create_cursor(name=str(uuid.uuid4())) as pg_cursor:
db = connections[source_db]
# Make sure a connection is open and available for export databases
if source_db != "default" and db.connection is None:
db.connect()
with db.create_cursor(name=str(uuid.uuid4())) as pg_cursor:
pg_cursor.itersize = BATCH_SIZE
pg_cursor.execute(query)
Loading