cursor.copy_from가 포스트그레스에서 실패했습니다.

cursor postgresql psycopg2 python sqlbulkcopy

문제

하나의 DB에서 다른 DB로 데이터를 복사 할 때 문제가 발생합니다. 파이썬 코드입니다.

import psycopg2

db = psycopg2.connect("dbname='db' user='xx' password='xx' host='127.0.0.2'")
st = db.cursor();

db_l = psycopg2.connect("dbname='xx' user='xx' password='xx' host='127.0.0.1'")
st_l = db_l.cursor();


q = "create table tarf as select i_rate, i_tariff As id, prefix, price_1, price_n, interval_1, interval_n, '00:00' AS start_time, '23:59:59' AS end_time, activation_dat
e, '3049-1-1 00:00' as exp  from rates JOIN tariffs USING (i_tariff) JOIN billing_plans USING(i_tariff) JOIN accounts using (i_billing_plan)"

st_l.execute(q)

f = open('tariff.sql','w')
st_l.copy_to(f,'tarf',sep=',')

st.copy_from(f,'tariff',sep=',')

다음은 직면 한 오류입니다.

Traceback (most recent call last):
  File "sync_tariff.py", line 23, in <module>
    st.copy_from(f,'tariff',sep=',')
psycopg2.extensions.QueryCanceledError: COPY from stdin failed: error in .read() call
CONTEXT:  COPY tariff, line 1

수락 된 답변

파일을 닫은 다음 열어서 읽습니다.

f = open('tariff.sql', 'w')
st_l.copy_to(f, 'tarf', sep=',')

f.close()

f = open('tariff.sql', 'r')
st.copy_from(f, 'tariff', sep=',')


아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.