Database 查看postgresql转储文件的简单方法?
我有大量的postgresql转储文件需要仔细阅读以获取数据。我是否必须安装Postgresql并将它们逐一“恢复”到新数据库中?或者我希望有一个postgresql客户端可以简单地打开它们,我可以查看数据,甚至可以运行一个简单的SQL查询 转储文件都来自Postgresql v9.1.9服务器 或者有一种工具可以轻松地将数据库“连接”到转储文件 更新:这些文件不是文本文件。它们是二进制的。它们来自Heroku的备份机制,这是: PG备份使用本机PG_dump PostgreSQL工具创建备份 备份文件,使导出到其他PostgreSQL变得简单 安装Database 查看postgresql转储文件的简单方法?,database,postgresql-9.1,pg-dump,Database,Postgresql 9.1,Pg Dump,我有大量的postgresql转储文件需要仔细阅读以获取数据。我是否必须安装Postgresql并将它们逐一“恢复”到新数据库中?或者我希望有一个postgresql客户端可以简单地打开它们,我可以查看数据,甚至可以运行一个简单的SQL查询 转储文件都来自Postgresql v9.1.9服务器 或者有一种工具可以轻松地将数据库“连接”到转储文件 更新:这些文件不是文本文件。它们是二进制的。它们来自Heroku的备份机制,这是: PG备份使用本机PG_dump PostgreSQL工具创建备份
转储文件通常是文本文件,如果没有压缩,您可以使用文本编辑器打开它们。在内部,您将找到所有允许重建数据库的查询…尝试使用文本编辑器打开文件-默认转储格式为纯文本 如果转储文件不是纯文本-请尝试使用
pg\u restore-l您的\u db\u dump.file
命令。它将列出数据库转储中的所有对象(如表、索引…)
另一种可能的方法(可能不起作用,还没有尝试过)是通过
pg\u还原\u db\u dump.file
命令的输出grep
。如果我正确理解了手册的内容,pg_restore
的输出只是一系列SQL查询,这将重建数据库。如果在Windows上使用pgAdmin,可以将文件以纯文本形式备份,当您在命令行提示符下执行备份而不是pg_dump时,有一个选项。我遇到了同样的问题,最后我做了以下操作:
这就是我想要的:
pg_restore db.bin > db.sql
感谢@andrewtweber在较新版本中,您需要为stdout指定带有文件名或“-”的
-f
标志
pg_restore dump_file.bin -f -
这些垃圾是怎么产生的?即。。。你有创建它们的确切命令吗?转储是由Heroku的备份机制生成的这些转储不是文本文件,它们是Binarys
pg_restore
安装Postgresql server时安装的命令?或者我可以从某处轻松获取该命令吗?pg_restore-l
只提供表和其他元数据,而不是实际数据。不过,您上一个建议对我非常有效。转储文件可能很大。如果是这种情况,我建议您尝试pg_restore db.bin | less
,如果您只想查看或执行pg_restore db.bin | psql dbname>log 2>错误
,如果您想还原它。Briliant!谢谢,现在怎么办pg_restore:[archiver]文件头中不支持的版本(1.13)
@Chloe这意味着你的pg_restore
版本对于你试图恢复的备份来说太低了。对于Postgres 13,我不得不改为pg_restore db.bin-f db.sql
,另请参见@AlexDev's Thank you!我在使用上述解决方案时遇到了问题。因此,换句话说,为了生成一个包含原始sqlpg_restore dump_file.bin-f dump_file.sql的文件,谢谢您