diff --git a/pgloader/db.py b/pgloader/db.py index e58c66f..7fb737e 100644 --- a/pgloader/db.py +++ b/pgloader/db.py @@ -148,7 +148,12 @@ ORDER BY attnum """ self.log.debug("get_all_columns: %s %s %s" % (tablename, schemaname, sql)) - columns = [] + columns = [] + + have_to_connect = self.dbconn is None + if have_to_connect: + self.reset() + cursor = self.dbconn.cursor() try: cursor.execute(sql, [tablename, schemaname]) @@ -161,6 +166,9 @@ ORDER BY attnum cursor.close() + if have_to_connect: + self.close() + return columns def reset(self): diff --git a/pgloader/pgloader.py b/pgloader/pgloader.py index 5bb2421..5b1becd 100644 --- a/pgloader/pgloader.py +++ b/pgloader/pgloader.py @@ -314,8 +314,7 @@ class PGLoader(threading.Thread): self.all_cols = True self.db.all_cols = True - # force db to connect now - self.db.reset() + # get column list from database self.columns = self.db.get_all_columns(self.table) self.log.info("columns = *, got %s", str(self.columns))