2016-03-22 2 views
1

У меня есть дамп базы данных около 270 МБ, который я хочу загрузить в свою локальную базу данных postgres. Я напечатал следующую команду:Загрузить базу данных дампа в базу данных postgres

pg_dump databasename < dumpfile.sql 

После чего я получаю:

-- 
-- PostgreSQL database dump 
-- 

SET statement_timeout = 0; 
SET lock_timeout = 0; 
SET client_encoding = 'UTF8'; 
SET standard_conforming_strings = on; 
SET check_function_bodies = false; 
SET client_min_messages = warning; 

-- 
-- Name: plpgsql; Type: EXTENSION; Schema: -; Owner: 
-- 

CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog; 


-- 
-- Name: EXTENSION plpgsql; Type: COMMENT; Schema: -; Owner: 
-- 

COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language'; 


-- 
-- Name: public; Type: ACL; Schema: -; Owner: starlord 
-- 

REVOKE ALL ON SCHEMA public FROM PUBLIC; 
REVOKE ALL ON SCHEMA public FROM starlord; 
GRANT ALL ON SCHEMA public TO starlord; 
GRANT ALL ON SCHEMA public TO PUBLIC; 


-- 
-- PostgreSQL database dump complete 
-- 

Чтобы проверить, если свалка была успешной и проверить данные, которые я зарегистрированному в Psql терминал с использованием psql, открывающий Psql Терминал.

Если я нахожу \l, я получаю все базы данных. Я набрал \c databasename для подключения к базе данных, а затем \dt, чтобы проверить таблицы. Однако он продолжает показывать мне No relations found. Те же самые шаги полностью работают для других баз данных (загрузка дампа, а затем подключение и отображение таблиц). Более того, после загрузки дампа, если я нахожу \l+, чтобы увидеть размер каждой базы данных, интересующая меня база данных показывает размер 6973kb, где в качестве дампа 272MB.

Любые предложения относительно того, что может быть проблемой?

+1

Чтобы уточнить, вы пытались загрузить базу данных с помощью 'pg_dump databasename Schwern

+1

Ваше перенаправление выглядит обратным - вы передаете данные * в * 'pg_dump', который является инструментом для получения данных * из * базы данных. Если у вас уже есть резервная копия в формате SQL, вам необходимо передать ее в 'psql', чтобы фактически выполнить команды в файле. – IMSoP

ответ

2

pg_dump предназначен для сброса базы данных. pg_dump databasename < dumpfile.sql, вероятно, проигнорирует входной файл и выталкивает дамп на экран, который, кажется, является тем, что вы получили.

Чтобы восстановить файл dumpfile, проведите его в инструмент командной строки Postgres psql.

psql dbname < dumpfile.sql 

См. Также the Postgres docs on backup and restore.

Смежные вопросы