我正在使用 PostgreSQL 9.1 并希望恢复使用pg_dump以下命令生成的备份文件:
sudo pg_dump -h 127.0.0.1 -U postgres --clean --inserts -E UTF8 -f out.sql database_name
Run Code Online (Sandbox Code Playgroud)
该命令生成一个有效的 sql 文件,首先删除任何现有的数据库对象,然后生成所有表、索引、序列等,最后插入数据。
当我尝试使用以下方法恢复生成的备份文件时:(添加换行符仅用于显示目的)
sudo pg_restore
-d database_name -h 127.0.0.1 -U postgres
--format=c --clean --create out.sql
Run Code Online (Sandbox Code Playgroud)
它失败并打印:
pg_restore: [archiver] did not find magic string in file header
Run Code Online (Sandbox Code Playgroud)
这是什么原因?