我正在尝试从我的服务器上获取的pg_dump中恢复数据库。我知道有很多类似的问题,我尝试了所建议的但仍然无法解决我的问题。 我通过这个命令创建了我的pg_dump:
pg_dump name_of_database > name_of_backup_file
然后我创建新的db:
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;
答案 0 :(得分:1)
尝试使用
恢复数据库psql restored_database < name_of_backup_file