копирование pandas кадра данных в postgresql с помощью sqlalchemy приводит к ошибке 502 неверного шлюза - PullRequest
0 голосов
/ 06 августа 2020

Я пытаюсь обновить таблицу 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. Любая помощь по этому поводу приветствуется

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...