我正在尝试从服务器获得的数据库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