2016-03-22 10 views
1

Ich habe eine Datenbank-Dump über 270 MB, die ich in meine lokale Postgres-Datenbank laden möchte. Ich tippte in den folgenden Befehl ein:Laden Datenbank-Dump in Postgres-Datenbank

pg_dump databasename < dumpfile.sql 

Nach dem ich erhalten:

-- 
-- 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 
-- 

Um zu überprüfen, ob der Dump erfolgreich war und die Daten zu überprüfen ich in den psql-Terminal angemeldet psql verwendet, die die psql eröffnet Terminal.

Wenn ich \l tippe, bekomme ich alle Datenbanken. Ich tippte , um mit der Datenbank und dann \dt zu verbinden, um die Tabellen zu überprüfen. Aber es zeigt mir weiterhin No relations found. Die gleichen Schritte funktionieren auch für andere Datenbanken (Laden eines Dumps und anschließendes Verbinden und Anzeigen von Tabellen). Außerdem, nach dem Laden des Dumps, wenn ich \l+ gebe, um die Größe jeder Datenbank zu sehen, zeigt die Datenbank, die mich interessiert, eine Größe von 6973kb, wo der Dump 272MB ist.

Irgendwelche Vorschläge, was könnte das Problem sein?

+1

Um zu verdeutlichen, haben Sie versucht, die Datenbank mit 'pg_dump Datenbankname Schwern

+1

Ihre Weiterleitung scheint rückwärts zu sein - Sie leiten Daten * in * 'pg_dump', ein Werkzeug zum Abrufen von Daten * aus * der Datenbank. Wenn Sie bereits ein Backup im SQL-Format haben, müssen Sie es in 'psql' pipen, um die Befehle in der Datei auszuführen. – IMSoP

Antwort

2

pg_dump ist zum Dumping der Datenbank. pg_dump databasename < dumpfile.sql wird wahrscheinlich die Eingabedatei ignorieren und den Dump auf den Bildschirm speien, was zu sein scheint.

Um aus einer Dump-Datei wiederherzustellen, leiten Sie es in das Postgres-Befehlszeilen-Tool psql.

psql dbname < dumpfile.sql 

Siehe auch the Postgres docs on backup and restore.