从pg_dump语法错误还原数据库



我正在尝试从服务器获得的数据库pg_dump恢复我的数据库。我知道有很多类似的问题,我尝试了建议,但仍然无法解决我的问题。我通过以下命令创建了pg_dump:

pg_dump name_of_database > name_of_backup_file

然后我创建新的数据库:

createdb -T template0 restored_database

然后我使用以下命令恢复:

psql -1 -f name_of_backup_file.sql restored_database

它运行,然后我得到不同的语法错误,例如:

psql:nurate_pg_dump.sql:505: invalid command nWatch
Query buffer reset (cleared).
psql:nurate_pg_dump.sql:512: invalid command nThe
psql:nurate_pg_dump.sql:513: invalid command N
psql:nurate_pg_dump.sql:4098: ERROR:  syntax error at or near "9"
LINE 1: 9 the course is not difficult, but Zauresh Atakhanova is not...

我相信,由于我从同一服务器制作了pg_dump,并尝试恢复它,因此我的服务器设置或 postgres 版本没有任何变化,所以我认为我的数据库应该正确恢复。如何解决这些语法错误?

编辑:好的,问题不在于语法:

创建扩展
错误:必须是扩展 plpgsql 的所有者

此错误在此行引发:

CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog;

尝试使用

psql restored_database < name_of_backup_file

最新更新