it-swarm-ja.tech

SQLダンプをPostgreSQLデータベースにインポートする

我々はホストを切り替えています、そして、古いホストは我々のサイトのPostgreSQLデータベースのSQLダンプを提供しました。

今、私はこれをテストするためにこれをローカルのWAMPサーバーに設定しようとしています。

唯一の問題は、私が設定したPostgreSQL 9にこのデータベースをインポートする方法がわからないことです。

PgAdmin IIIを試しましたが、 'インポート'機能が見つかりません。 SQLエディタを開いてそこにダンプの内容を貼り付けて実行したところ、テーブルは作成されましたが、データを書き込もうとするとエラーが発生し続けます。

ERROR:  syntax error at or near "t"
LINE 474: t 2011-05-24 16:45:01.768633 2011-05-24 16:45:01.768633 view...

The lines:
COPY tb_abilities (active, creation, modtime, id, lang, title, description) FROM stdin;
t   2011-05-24 16:45:01.768633  2011-05-24 16:45:01.768633  view    nl ...  

私はまた、コマンドプロンプトでこれをやろうとしました、しかし、私が必要とするコマンドを見つけることができません。

私が行った場合

psql mydatabase < C:/database/db-backup.sql;

私はエラーが出ます

ERROR:  syntax error at or near "psql"
LINE 1: psql mydatabase < C:/database/db-backu...
        ^

データベースをインポートするための最良の方法は何ですか?

359
dazz
psql databasename < data_base_dump

それがあなたが探しているコマンドです。

注意:インポートする前にdatabasenameを作成する必要があります。 PostgreSQLドキュメント第23章バックアップと復元 をご覧ください。

594
Jacob

これがあなたが探しているコマンドです。

psql -h hostname -d databasename -U username -f file.sql
303
Gabriel Ramirez

私はあなたがpsqlで動かしたいと思うと思います:

\i C:/database/db-backup.sql
96
Arran Ubels

それは私のために働いた:

Sudo -u postgres psql db_name < 'file_path'
45
ivanacorovic

これがOPの状況でうまく機能するかどうかはわかりませんが、インタラクティブコンソールで次のコマンドを実行するのが最も柔軟な解決策であることがわかりました。

\i 'path/to/file.sql'

正しいデータベースに接続していることを確認してください。このコマンドは、指定されたファイル内のすべてのSQLコマンドを実行します。

34
rockusbacchus

コマンドラインでは、すべての引数が必須です。-Wはパスワード用です。

psql -h localhost -U user -W -d database_name -f path/to/file.sql
31
Feuda

おかしなことに、ダンプが圧縮されている場合は、次のようにすることができます。

gunzip -c filename.gz | psql dbname

Jacobが述べたように、 PostgreSQLドキュメント はこれらすべてを非常によく説明しています。

21
alan

私が使う:

cat /home/path/to/dump/file | psql -h localhost -U <user_name> -d <db_name>

これが誰かに役立つことを願っています。

5
Vajira Lasantha

あなたはpgadmin3でそれをすることができます。ダンプに含まれているスキーマを削除します。それからデータベースを右クリックし、「Restore」を選択して下さい。その後、ダンプファイルを探すことができます。

3

私は、パスワードなしのpostgresユーザーだけが存在するlocalhostについて、多くの例が複雑すぎることに気付きました:

psql -d db_name -f dump.sql
1