2016-10-27 20 views
0

Я использую PostgreSQL в качестве моей БД.Невозможно pg_restore SQL-файл на удаленном Linux VM

У меня есть SCPed.sql файл на моем удаленном Ubuntu VM.

Я сделал sudo su - postgres и создал БД.

я переключатель попятился к моему первоначальному счету и попытался это:

sudo -su postgres pg_restore < temp.sql

Команда успешно.

Но когда я снова переключился обратно Postgres пользователя и проверил БД для списка таблиц с помощью \ дт Я не нашел никаких таблиц.

Что я делаю неправильно?

ответ

1

«pg_restore» предназначен для восстановления файлов, сгенерированных «pg_dump».

От человека странице

pg_restore это утилита для восстановления базы данных PostgreSQL из архива, созданного pg_dump (1) в одном из не-обычных текстовых форматов.

https://www.postgresql.org/docs/9.2/static/app-pgrestore.html

Если файл был создан с помощью pg_dump вы, вероятно, нужно, по крайней мере, указать, какие базы данных сваливать в:

pg_restore -d my_new_database temp.sql 

Мой собственный опыт с pg_restore между различными вкусами показывает, что многие раз мне нужно указать формат файла дампа, даже если он был в «родном» формате, несмотря на man-страницу, указывающую, что он обнаружит формат.

pg_restore -d my_new_database -Fc temp.dump 

Это только предположение, но я думаю, если таблицы на самом деле восстановлено, без указания дб, они получили сбрасывали в базу данных по умолчанию. Вы можете проверить это, указав таблицы в базе данных postgres (их не должно быть).

postgres=#\c postgres 
You are now connected to database "postgres" as user "postgres". 
postgres=#\dt 
No relations found. 

Если ваши таблицы действительно восстановлены в базу данных по умолчанию, они будут перечислены.

Простые текстовые файлы SQL должны обрабатываться по-разному, как правило, выполняются с помощью команд SQL с использованием psql.

psql -d my_database < temp.sql 
+0

Я создал дамп и пометил вариант создания базы данных «да». Поэтому я подумал, что мне не понадобится имя базы данных. Однако после указания имени базы данных она работала. Благодаря! – amitection

+0

@ameitection - Рад, что я мог помочь! Ты не единственный, кто был спокоен. Я подозревал, что это случилось со мной. – lavajumper