データベースを復元しようとしています。データベースのSQLファイルは約4.5 GBなので、エディターで編集できませんでした。 postgres 12で次のコマンドを使用してデータベースをダンプします。
pg_dump -d postgres > backup.sql
しかし、私はpostgres 9.6で同じデータベースが必要です。この目的のために、私はそれを復元する次のコードを書きます
psql -d postgres < backup.sql
this(Error in creation in sequence) のようなエラーが表示されます。しかし、これは与えられた質問の重複したものではありません。エラーメッセージ;
SET
ERROR: unrecognized configuration parameter "default_table_access_method"
CREATE TABLE
ALTER TABLE
ERROR: syntax error at or near "AS"
LINE 2: AS integer
^
ERROR: relation "epicenter.epicenter_gid_seq" does not exist
ERROR: relation "epicenter.epicenter_gid_seq" does not exist
CREATE TABLE
ALTER TABLE
ERROR: syntax error at or near "AS"
LINE 2: AS integer
^
ERROR: relation "public.725_4.5_tur_gid_seq" does not exist
ERROR: relation "public.725_4.5_tur_gid_seq" does not exist
CREATE TABLE
ALTER TABLE
この質問の答えを見ました。回答ではすでに、sqlファイルは古いバージョンでは機能しないと述べています。しかし、知りたいのですが、このsqlファイルを使用して復元する方法はありますか?
@jjanesと@JGHにご協力いただき、ありがとうございます。私は一つの解決策を見つけました。まず、次のコマンドを使用してデータベースをバックアップします。
pg_dump -U postgres -h localhost -p 5432 -W earthquake | gzip -c > backup.gz
次に、pgadmin 4
から地震データベースを手動で作成します。 backup.gz
ファイルを取得した後、ターミナルで次のコマンドを使用して復元します。
gzip -d -c backup.gz | sed -e '/AS integer/d' | psql -U postgres -h localhost -p 5432 -W earthquake