POSTGRESQL- und Django-App: Daten konnten nicht vom Client empfangen werden: Verbindung vom Peer zurückgesetzt

POSTGRESQL- und Django-App: Daten konnten nicht vom Client empfangen werden: Verbindung vom Peer zurückgesetzt

Ich führe eine Django-App mit PostgreSQL, Nginx und Gunicorn aus. Ich habe ein Skript, in dem Daten aus einer Tabelle in der Datenbank abgerufen, geändert und dann die vorhandenen Daten in dieser einen Tabelle ersetzt werden müssen. Im selben Skript werden auch einige Tabellen aktualisiert.

Beim Ausführen des Skripts tritt immer ein 502 Bad GatewayTimeout des Servers aufgrund von etwas im Skript auf. Da ich noch relativ neu in diesem Thema bin, fällt es mir schwer, herauszufinden, was mit dem folgenden Fehler los ist.

Ich kann nur mit dem folgenden Protokoll von Postgres arbeiten:

2020-08-22 14:57:59 UTC::@:[8228]:LOG: checkpoint starting: time
2020-08-22 14:57:59 UTC::@:[8228]:LOG: checkpoint complete: wrote 1 buffers (0.0%); 0 WAL file(s) added, 0 removed, 1 recycled; write=0.101 s, sync=0.005 s, total=0.132 s; sync files=1, longest=0.005 s, average=0.005 s; distance=65536 kB, estimate=70182 kB
2020-08-22 14:58:50 UTC:address-ip(45726):pierre@dbexostock:[25618]:LOG: could not receive data from client: Connection reset by peer
2020-08-22 14:58:50 UTC:address-ip(45724):pierre@dbexostock:[25617]:LOG: could not receive data from client: Connection reset by peer

Ich denke, das Problem liegt bei den Verbindungen zur Datenbank im Skript:

#connect to db
engine = create_engine('postgresql+psycopg2://user:[email protected]',
                               connect_args={'options': '-csearch_path={}'.format(dbschema)})

#access the data in the historical_data table 
conn = engine.connect()
metadata = sqlalchemy.MetaData()
histoo = sqlalchemy.Table('uploadfiles_historical_data', metadata, autoload=True, autoload_with=engine)
query = sqlalchemy.select([histoo])
resultproxy = conn.execute(query)
        
        
result_set = resultproxy.fetchall()

#update the historical table 
histo = histo2.head(0).to_sql('uploadfiles_histoo', engine, if_exists='replace')
cur = conn.cursor()
output = io.StringIO()
histo2.to_csv(output, sep='\t', header=False, encoding='utf8')
output.seek(0)
cur.copy_from(output,'uploadfiles_histoo')
conn.commit()

#update other tables (example)
itemmdb = df559.to_sql('dashboard_item', engine, if_exists='replace')

Ich bin wirklich verwirrt und zerbreche mir schon seit einiger Zeit den Kopf über dieses Problem, aber nichts scheint zu funktionieren. Ich hoffe, dass jemand sieht, wo ich es vermasselt habe.

verwandte Informationen