Я пытаюсь обновить таблицу postgresql из формы django. Я получаю доступ к таблице, изменяю таблицу, а затем сохраняю изменения внутри таблицы. в таблице около 100 тыс. строк. Я пробовал использовать df.to_sql
, но он настолько медленный, что приводит к 502 bad gateway
ошибкам.
Осмотрев sqalchemy do c и stackoverflow, я построил это:
engine = create_engine('postgresql://user:password@ip_address/db',
connect_args={'options': '-csearch_path={}'.format(dbschema)})
conn = engine.connect()
metadata = sqlalchemy.MetaData()
histoo = sqlalchemy.Table('uploadfiles_histoo', metadata, autoload=True, autoload_with=engine)
query = sqlalchemy.select([histoo])
resultproxy = conn.execute(query)
result_set = resultproxy.fetchall()
histoo = pd.DataFrame(result_set)
histoo.columns = result_set[0].keys()
data_initial = data_initial.append(histoo)
histo2 = pd.DataFrame(data_initial['Id'])
histo2[:0].to_sql('uploadfiles_histoo', engine, if_exists='replace')
output = io.StringIO()
histo2.to_csv(output, sep='\t', header=False, encoding='utf8')
output.seek(0)
connection = engine.raw_connection()
cursor = connection.cursor()
cursor.copy_from(output, 'uploadfiles_histoo', sep='\t', null='')
connection.commit()
cursor.close()
когда я запускаю этот код, он по-прежнему приводит к 502 bad gateway
, что означает, что я, должно быть, сделал что-то не так, и это не улучшает производительность импорта. Я действительно изо всех сил пытаюсь понять, что может быть не так, особенно зная, что скрипт не выводит связанную с ним ошибку. У меня нет того, что я мог бы попробовать, надеюсь, кто-то сможет определить, где я здесь ошибаюсь. это:
histo2db = histo2.to_sql('uploadfiles_histoo', engine, if_exists='replace', header=False, method='multi',chunksize='5000')
Я начинаю думать, что проблема могла возникнуть из-за того, что могла быть проблема с доступом к таблице, чтением из нее и последующим изменением ее из того же соединения? Я не могу найти много в Интернете по этому топи c. Любая помощь по этому поводу приветствуется