我读了这些文档:
描述
pg_restore是一个用于从中恢复PostgreSQL数据库的实用程序 由pg_dump以其中一种非纯文本格式创建的存档。它 将发布重建数据库所需的命令 声明它在被保存的时候就存在了。存档文件也允许 pg_restore选择恢复什么,甚至重新排序 恢复之前的项目。存档文件旨在 可跨机构移植。
pg_restore可以在两种模式下运行。如果指定了数据库名称, pg_restore连接到该数据库并恢复存档内容 直接进入数据库。否则,包含SQL的脚本 创建重建数据库所需的命令并将其写入 文件或标准输出。此脚本输出等效于plain pg_dump的文本输出格式。控制的一些选项 因此输出类似于pg_dump选项。
显然,pg_restore无法恢复不存在的信息 在存档文件中。例如,如果存档是使用 "将数据转储为INSERT命令"选项,pg_restore将无法 使用COPY语句加载数据。
但是,如果pg_restore只是加载数据库数据,或者它也创建了数据库的结构,那么我仍然不清楚。
答案 0 :(得分:1)
这取决于您传递的选项,显然取决于转储中存储的信息。如果您继续阅读文档,您将看到此选项:
- 仅限数据
仅恢复数据,而不是模式(数据定义)。如果,则恢复表数据,大对象和序列值 存在于档案中。 此选项类似于,但由于历史原因不同,指定--section = data。
显然,您只能恢复架构,但不能恢复数据。