pg_restore:找不到命令

时间:2013-11-12 20:32:42

标签: ruby-on-rails postgresql heroku

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

$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 个答案:

答案 0 :(得分:10)

听起来像是在本地环境中发生了变化,现在pg_restore,与postgres捆绑在一起的客户端命令工具以及pg_dump和psql不可用。

听起来你需要正确设置你的PATH。

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

最后,您正在做的事情可以通过更简单的heroku pg:pull完成,它从您的heroku数据库中获取备份并在一个命令中本地恢复它(但也使用pg_dump / pg_restore,所以那些需要也可以。