Schema 仅使用文本格式转储恢复到新的 postgreSQL DB

Posted

技术标签:

【中文标题】Schema 仅使用文本格式转储恢复到新的 postgreSQL DB【英文标题】:Schema only restore to new postgreSQL DB with a text format dump 【发布时间】:2015-01-26 04:36:03 【问题描述】:
psql --version
psql (PostgreSQL) 9.3.5

我正在尝试仅恢复架构。我尝试了以下命令:

pg_restore -s -d rh /path/to/dump.sql
pg_restore: [archiver] input file appears to be a text format dump. Please use psql.

我已尝试查看 psql 的文档,但没有找到仅模式标志。

如果您知道任何其他技术来实现这一点,我将非常感激。

如果对我有帮助,我正在使用 OSX 版本 10.10

【问题讨论】:

这就是“纯文本”转储的问题。仅当您使用 pg_dump -Fc 创建“自定义”转储时,才可能使用“仅模式”选项 【参考方案1】:

您可以使用 -s 生成文本转储文件,以仅生成模式转储,如下所示:

pg_dump -s <database name> > pg_dump_text_filename

您应该使用 psql 命令连接到您的数据库:

psql -U <username> -d <databasename> 

然后在 psql 提示符下使用:

\i <pg_dump_text_file_path>

也可以使用pg_dump的归档文件格式:

pg_dump -Fc -f <archive file> <database name> 

然后 pg_restore 仅模式:

pg_restore -d <database name> -s <archive file>

【讨论】:

这只会做架构而不做数据吗? 我使用 pg_dump 选项编辑了我的帖子以排除数据。

以上是关于Schema 仅使用文本格式转储恢复到新的 postgreSQL DB的主要内容,如果未能解决你的问题,请参考以下文章

自动将 csv 转储到新的 Postgres 表中[重复]

使用 pg_dump 的选择性模式转储

如何过滤语言的Wikidata dump?

如何仅使用 heroku 上的 postgres 转储来恢复我的数据库数据

如何恢复 MYSQL .dump 文件?

如何恢复 MYSQL .dump 文件?