Sim*_*ano 2 postgresql pg-dump
我的用例如下:
pg_dump -F p我有用(纯文本 SQL 脚本文件)制作的 PostgreSQL 转储,我无法控制它们的制作方式pg_restore灵活性(--no-owner、--data-only、--clean 等)我知道我应该使用psql纯文本 SQL 转储,但是有什么方法可以将 SQL 转储转换为 PostgreSQL 自定义格式转储,以便我可以使用 pg_restore 或某种获取其所有选项的方法?
感谢您的关注。
正如其他答案/评论提到的,您无法直接转换它。您应该做的是从 sql 备份文件创建一个临时数据库,并使用 pg_dump 从中创建自定义格式。
检查 sql 备份是否不是“干净”的恢复文件,这意味着它不会删除文件顶部的数据库。如果是,请删除“DROP DATABASE dbase”。
创建临时数据库:
psql
CREATE DATABASE mytempdb;
\q
Run Code Online (Sandbox Code Playgroud)
然后恢复您的备份:
psql mytempdb < my_database_backup.sql
Run Code Online (Sandbox Code Playgroud)
注意:这就是为什么您不希望在 sql 文件顶部出现“drop database...”行。它会删除您的原始数据库。
将其转储为自定义格式:
pg_dump mytempdb -Fc -f custom_format.dump
Run Code Online (Sandbox Code Playgroud)