51

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

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

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

更新:这些不是文本文件。它们是二进制的。它们来自 Heroku 的备份机制,这就是Heroku 关于如何创建备份的说法

PG Backups 使用本机 pg_dump PostgreSQL 工具来创建其备份文件,这使得导出到其他 PostgreSQL 安装变得微不足道。

4

6 回答 6

68

This was what I was looking for:

pg_restore db.bin > db.sql

Thanks @andrewtweber

于 2015-03-10T14:54:22.857 回答
36

尝试使用文本编辑器打开文件 - 默认转储格式是纯文本。

如果转储不是纯文本 - 尝试使用pg_restore -l your_db_dump.file命令。它将列出数据库转储中的所有对象(如表、索引......)。

另一种可能的方法(可能行不通,没有尝试过)是grep通过pg_restore your_db_dump.file命令的输出。如果我正确理解手册 - 的输出pg_restore只是一系列 SQL 查询,它将重建数据库。

于 2013-04-25T21:21:03.750 回答
14

在较新的版本中,您需要-f使用文件名或“-”为标准输出指定标志

pg_restore dump_file.bin -f -
于 2019-12-17T16:59:52.537 回答
13

我有同样的问题,我最终这样做了:

  1. 安装 Postgresql 和 PGAdmin3。
  2. 打开 PGAdmin3 并创建一个数据库。
  3. 右键单击数据库,然后单击还原。
  4. 忽略文件类型。
  5. 从 Heroku 中选择数据库转储文件。
  6. 单击恢复。
于 2014-07-17T23:35:41.010 回答
0

If you use pgAdmin on Windows, can just backup the file as plain text, there is one option when you do backup instead of pg_dump in command line prompt.

于 2014-01-30T16:12:30.147 回答
0

转储文件通常是文本文件,如果未压缩,您可以使用文本编辑器打开它们。在里面你会发现所有允许重建数据库的查询......

于 2013-04-25T20:29:21.217 回答