2016-03-22 12 views
1

ローカルのpostgresデータベースにロードするデータベースのダンプを約270MB持っています。私は、次のコマンドで入力:データベースをpostgresデータベースにロードする

-- 
-- 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の端子に記録されたデータを確認するために:私は取得された後

pg_dump databasename < dumpfile.sql 

ターミナル。

私が\lと入力すると、すべてのデータベースが取得されます。データベースに接続するために\c databasenameと入力し、\dtと入力してテーブルを確認しました。しかしそれは私にNo relations foundを示し続ける。同じ手順で、他のデータベース(ダンプをロードした後、テーブルを接続して表示する)にも問題ありません。さらに、\l+と入力して各データベースのサイズを確認すると、ダンプをロードした後、興味のあるデータベースのサイズは6973kbで、ダンプは272MBです。

何が問題になるかについてのご意見はありますか?

+1

明らかに、 'pg_dump databasename Schwern

+1

あなたのリダイレクションは後方に向かっているように見えます - データを* out *するためのツールである 'pg_dump'にデータ*をパイプしています。すでにSQL形式のバックアップをお持ちの場合は、実際にファイル内のコマンドを実行するために、 'psql'にパイプを張る必要があります。 – IMSoP

答えて

2

pg_dumpは、データベースをダンプするためのものです。 pg_dump databasename < dumpfile.sqlはおそらく入力ファイルを無視し、スクリーンにダンプを吐き出します。これはあなたが持っているものと思われます。

ダンプファイルから復元するには、Postgresコマンドラインツールpsqlにパイプします。

psql dbname < dumpfile.sql 

the Postgres docs on backup and restoreも参照してください。

関連する問題