将 PostgreSQL SQL 转储转换为 PostgresSQL 自定义格式转储

Convert PostgreSQL SQL dump to PostgreSQL custom-format dump

我的用例如下:

我知道我应该将 psql 与纯文本 SQL 转储一起使用,但是 有什么方法可以转换 SQL 转储进入 PostgreSQL 自定义格式转储 以便我可以使用 pg_restore 或某种获取其所有选项的方法?

感谢关注

正如另一个answers/comments提到的,你不能直接转换它。您应该做的是从 sql 备份文件创建一个临时数据库,并使用 pg_dump 从中创建自定义格式。

检查 sql 备份不是 "clean" 恢复文件,这意味着它不会删除文件顶部的数据库。如果是,删除 "DROP DATABASE dbase"..

创建临时数据库:

psql
CREATE DATABASE mytempdb;
\q

然后将你的备份还原到它:

psql mytempdb < my_database_backup.sql

注意:这就是为什么您不希望 sql 文件顶部的 "drop database..." 行。它会删除您的原始数据库。

将其转储为自定义格式:

pg_dump mytempdb -Fc -f custom_format.dump