模式仅以文本格式转储还原到新的PostgreSQL DB

dan*_*sun 5 postgresql schema restore

psql --version
psql (PostgreSQL) 9.3.5
Run Code Online (Sandbox Code Playgroud)

我正在尝试仅还原架构。我尝试了以下命令:

pg_restore -s -d rh /path/to/dump.sql
pg_restore: [archiver] input file appears to be a text format dump. Please use psql.
Run Code Online (Sandbox Code Playgroud)

我尝试查看psql的文档,但未找到仅架构标志。

如果您知道实现此目的的任何其他技术,我将不胜感激。

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

小智 8

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

pg_dump -s <database name> > pg_dump_text_filename
Run Code Online (Sandbox Code Playgroud)

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

psql -U <username> -d <databasename> 
Run Code Online (Sandbox Code Playgroud)

然后在 psql 提示符下使用:

\i <pg_dump_text_file_path>
Run Code Online (Sandbox Code Playgroud)

您还可以使用 pg_dump 的存档文件格式:

pg_dump -Fc -f <archive file> <database name> 
Run Code Online (Sandbox Code Playgroud)

然后 pg_restore 只有架构:

pg_restore -d <database name> -s <archive file>
Run Code Online (Sandbox Code Playgroud)