Това е само заобиколно решение, но можете просто да подадете нещо в psql. Използвам тази рецепта понякога, когато ме мързи да разбия psycopg2
import subprocess
def psql_copy_from(filename, tablename, columns = None):
"""Warning, this does not properly quote things"""
coltxt = ' (%s)' % ', '.join(columns) if columns else ''
with open(filename) as f:
subprocess.check_call([
'psql',
'-c', 'COPY %s%s FROM STDIN' % (tablename, coltxt),
'--set=ON_ERROR_STOP=true', # to be safe
# add your connection args here
], stdin=f)
Що се отнася до вашето заключване, използвате ли множество нишки или нещо подобно?
Вашият postgres регистрира ли нещо като затворена връзка или блокиране? Можете ли да видите активността на диска, след като блокира?