@NataliaOxford

Как можно импортировать БД в PostgreSQL?

Здравствуйте! Пытаюсь импортировать БД, в которой не указан тип файла с помощью команды:

copy "table" from 'C:\sd\BD'

Выдаёт вот такую ошибку:

ERROR: ОШИБКА: не удалось открыть файл "C:\z\БД_ком" для чтения: No such file or directory
HINT: COPY FROM указывает серверному процессу PostgreSQL прочитать данные из файла. Возможно, на самом деле вам нужно клиентское средство, например, \copy в psql.
  • Вопрос задан
  • 2168 просмотров
Пригласить эксперта
Ответы на вопрос 2
ky0
@ky0
Миллиардер, филантроп, патологический лгун
Вы пытаетесь импортировать таблицу из файла. Это так не делается.

Если это текстовый дамп - то надо с помощью psql -f. Если бинарный - с помощью pg_restore.
Ответ написан
@dvsa
>>Если это текстовый дамп - то надо с помощью psql -f. Если бинарный - с помощью pg_restore.

Совсем необязательно. Запрос прекрасно выполняется из pgAdmin или через нужные библиотеки (psycopg2, jdbc и т.д.) при соблюдении трех важных условий.

1.
Надо понимать, что путь к файлу, который указан после from - это путь на сервере posgress, а не на той машине, с которой вы запускаете запрос. Поэтому файл *.csv должен физически находится на сервере posgress.

2.
К файлу должен быть доступ у процесса posgress. Поэтому, например, для Windows плохая идея располагать *.csv на диске C.

3.
Строго соблюсти формат разделителей *.csv, который поймет posgress. Чтобы не гадать - сделайте сначала выгрузку из таблицы командой copy tableName to 'csv_file_path'
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы