Как импортировать таблицу из CSV-файла, используя относительный путь в postgresql? - PullRequest
0 голосов
/ 16 октября 2018

Моя функция копирования такова: COPY NEWTABLE FROM './myfile.csv' csv HEADER;

Но когда я пытаюсь сделать это, мне сообщается No such file or directory.Это работает только тогда, когда я использую абсолютный путь, но для целей, которые я делаю, мне нужно использовать некоторый относительный путь.

Ответы [ 3 ]

0 голосов
/ 16 октября 2018

COPY выполняется на серверном сервере, что означает, что pwd обычно является datadir вашего кластера - любые относительные пути, которые он пытается найти, будут относительными к нему.См. Документы :

Путь будет интерпретироваться относительно рабочего каталога серверного процесса (обычно каталога данных кластера), а не рабочего каталога клиента.

Если вы используете psql, \copy сделает все правильно с относительными путями (он будет использовать ваш pwd, а не серверный бэкэнд)

0 голосов
/ 15 марта 2019

В Linux, с PSQL я делаю:

\set localpath `pwd`'/myfile.csv'
COPY NEWTABLE FROM :'localpath' csv HEADER;
0 голосов
/ 16 октября 2018

Вы всегда можете сделать cd для относительного пути в скрипте, прежде чем запустить команду COPY.Не уверен, есть ли способ заставить команду COPY использовать относительный путь.

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