Функция копирования Postgresql с серверного компьютера на клиентский компьютер

#postgresql #pgadmin-4 #postgresql-copy

Вопрос:

Я хотел бы импортировать таблицу с серверного компьютера на клиентский компьютер с помощью команды копирования. Я знаю, что это повторяющаяся проблема для пользователей, но я не смог получить ответ на этот конкретный вопрос, и это также другой сценарий, и я считаю, что это распространенный.

Я использовал команду копирования, чтобы скопировать таблицу с сервера на клиентский компьютер, используя приведенный ниже код:

 COPY (Select * from Table_Name) TO 'C:somedirectoryfile.csv' DELIMITER ',' CSV HEADER;
 

Однако я получил следующее

ОШИБКА: относительный путь не разрешен для КОПИРОВАНИЯ в файл

Мой вопрос: как мне использовать правильную команду КОПИРОВАНИЯ для копирования с серверного компьютера на клиентский компьютер в Postgres.

Спасибо в ожидании

Ответ №1:

  1. Пожалуйста, проверьте, имеет ли ваш пользователь доступ на чтение / запись к папке назначения.
  2. Это один поток, который я нашел, посмотрим, поможет ли это

https://dba.stackexchange.com/questions/158466/relative-path-for-psql-copy-file
https://postgrespro.com/list/thread-id/1116997

  1. Попробуйте подключиться к сети через доступ с использованием общедоступного IP-адреса клиента.

Ответ №2:

Как мне использовать правильную команду КОПИРОВАНИЯ для копирования с серверного компьютера на клиентский компьютер в Postgres

Вы просто не можете.

Что четко указано в руководстве

КОПИРОВАНИЕ с именем файла указывает серверу PostgreSQL на прямое чтение из файла или запись в файл. Файл должен быть доступен пользователю PostgreSQL (идентификатор пользователя, с которым работает сервер), а имя должно быть указано с точки зрения сервера

(выделение мое)

Вам нужно использовать psql copy команду ‘s или любой другой инструмент экспорта, который работает на стороне клиента.