Database 查看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工具创建备份

我有大量的postgresql转储文件需要仔细阅读以获取数据。我是否必须安装Postgresql并将它们逐一“恢复”到新数据库中?或者我希望有一个postgresql客户端可以简单地打开它们,我可以查看数据,甚至可以运行一个简单的SQL查询

转储文件都来自Postgresql v9.1.9服务器

或者有一种工具可以轻松地将数据库“连接”到转储文件

更新:这些文件不是文本文件。它们是二进制的。它们来自Heroku的备份机制,这是:

PG备份使用本机PG_dump PostgreSQL工具创建备份 备份文件,使导出到其他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时,有一个选项。

我遇到了同样的问题,最后我做了以下操作:

  • 安装Postgresql和PGAdmin3
  • 打开PGAdmin3并创建一个数据库
  • 右键单击数据库,然后单击恢复
  • 忽略文件类型
  • 从Heroku中选择数据库转储文件
  • 单击恢复

  • 这就是我想要的:

    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!我在使用上述解决方案时遇到了问题。因此,换句话说,为了生成一个包含原始sql
    pg_restore dump_file.bin-f dump_file.sql的文件,谢谢您