pg_restore:命令未找到。

7

我有一个托管在Heroku上的RoR应用程序,使用Postgresql数据库,并一直在使用PG Backups工具将数据库从我的应用程序备份到本地计算机。由于该应用程序仍处于开发阶段,因此从编程角度来看,它可以帮助我了解同事对数据库所做的更改。我已经成功地使用PG Backups捕获和恢复了几个月,但最近,当我运行这里所见的典型命令时:

$curl -o latest.dump `heroku pgbackups:url --app XXXXX`
$pg_restore --verbose --clean --no-acl --no-owner -h localhost -U XXXXX -d XXXXX_development latest.dump

在curl命令执行后,我收到了如下错误:

-bash: pg_restore: command not found

有什么想法,为什么会发生这种情况呢?显然问题是我无法恢复下载的备份。
1个回答

13

听起来你本地环境发生了一些变化,现在随同 pg_dump 和 psql 一起捆绑在 Postgres 中的客户端命令工具 pg_restore 不可用了。

看起来你需要正确设置 PATH。

可以尝试使用 sudo find / -name pg_restore 在系统中找到正确的 pg_restore,之后将其所在目录添加到 PATH 中。

最后,你正在做的事情可能可以通过更简单的 heroku pg:pull 实现,这个命令可以从 Heroku 数据库中备份并还原到本地(但是也需要可用的 pg_dump/pg_restore)。


非常感谢您的回答!我是一名新手程序员,我尝试寻找资源来帮助我将pg_restore添加到PATH中,但没有任何效果(我以前从未做过这样的事情)。我不确定您使用的操作系统是什么,但我正在运行Mac OSX Mavericks。如果您也在Mac上运行,请告诉我您如何执行此修复操作? - Kevin Ciminelli
1
你是如何安装Postgres的?如果你还没有在本地安装Postgres,那么请先安装。我建议使用http://postgresapp.com/并按照其文档进行PATH修复。 - hgmnz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接