我々はホストを切り替えています、そして、古いホストは我々のサイトの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...
^
データベースをインポートするための最良の方法は何ですか?
psql databasename < data_base_dump
それがあなたが探しているコマンドです。
注意:インポートする前にdatabasename
を作成する必要があります。 PostgreSQLドキュメント第23章バックアップと復元 をご覧ください。
これがあなたが探しているコマンドです。
psql -h hostname -d databasename -U username -f file.sql
私はあなたがpsqlで動かしたいと思うと思います:
\i C:/database/db-backup.sql
それは私のために働いた:
Sudo -u postgres psql db_name < 'file_path'
これがOPの状況でうまく機能するかどうかはわかりませんが、インタラクティブコンソールで次のコマンドを実行するのが最も柔軟な解決策であることがわかりました。
\i 'path/to/file.sql'
正しいデータベースに接続していることを確認してください。このコマンドは、指定されたファイル内のすべてのSQLコマンドを実行します。
コマンドラインでは、すべての引数が必須です。-Wはパスワード用です。
psql -h localhost -U user -W -d database_name -f path/to/file.sql
おかしなことに、ダンプが圧縮されている場合は、次のようにすることができます。
gunzip -c filename.gz | psql dbname
Jacobが述べたように、 PostgreSQLドキュメント はこれらすべてを非常によく説明しています。
私が使う:
cat /home/path/to/dump/file | psql -h localhost -U <user_name> -d <db_name>
これが誰かに役立つことを願っています。
あなたはpgadmin3でそれをすることができます。ダンプに含まれているスキーマを削除します。それからデータベースを右クリックし、「Restore」を選択して下さい。その後、ダンプファイルを探すことができます。
私は、パスワードなしのpostgresユーザーだけが存在するlocalhostについて、多くの例が複雑すぎることに気付きました:
psql -d db_name -f dump.sql