Экспортирование таблицы из postgresql с помощью psycopg2

Имеется большой скрипт для записи данных в таблицу, есть требование по экспорту устаревших данных из бд для хранения

def export_data(cursor, name, connection):
    try:
        print(f''' COPY '{name}' TO '/tmp/databases/{name}/{name}_{datetime.now().strftime("%d_%m_%y")}.csv' WITH (FORMAT CSV, HEADER) ''')
        insert_table_query = f''' COPY '{name}' TO '/tmp/databases/{name}/{name}_{datetime.now().strftime("%d_%m_%y")}.csv' WITH (FORMAT CSV, HEADER) '''
        cursor.execute(insert_table_query)
        connection.commit()
    except Exception and errors as e:
        print(e)

Ошибка

Connection to PostgreSQL DB successful
 COPY 'sprint' TO '/tmp/databases/sprint/sprint_30_08_22.csv' WITH (FORMAT CSV, HEADER) 
catching classes that do not inherit from BaseException is not allowed

Не совсем понятно как реализовать экспотирования таблиц


Ответы (1 шт):

Автор решения: Miekrif

В библиотеке pcycopg2 есть нативный метод .copy_to()

Мое решение cursor.copy_to(f'/tmp/databases/{name}/{name}_{datetime.now().strftime("%d_%m_%y")}.csv')

def export_data(cursor, name, connection):
    try:
       cursor.copy_to(f'/tmp/databases/{name}/{name}_{datetime.now().strftime("%d_%m_%y")}.csv')
    except errors and Exception as e:
        print(e)
→ Ссылка