如何将 postgres 12 生成的 sql 文件恢复到 postgres 9.6 数据库中

How to restore postgres 12 generated sql file into postgres 9.6 database

我正在尝试恢复数据库。数据库 sql 文件大约有 4.5 GB,所以我无法在编辑器上对其进行编辑。我在 postgres 12 中使用以下命令转储数据库;

pg_dump -d postgres > backup.sql

但我在 postgres 9.6 中需要相同的数据库。为此,我写了下面的代码来恢复它

psql -d postgres < backup.sql

显示这样的错误。但这不是给定问题的重复问题。 错误信息;

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