7

我有一个使用 Postgresql 数据库托管在 Heroku 上的 RoR 应用程序,并且一直在使用 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

关于为什么会发生这种情况的任何想法?显然问题是我无法恢复下载的备份。

4

1 回答 1

13

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

听起来您需要正确设置 PATH 。

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

最后,你正在做的事情可能会用一个更简单的 来完成heroku pg:pull,它从你的 heroku 数据库中获取备份并在一个命令中将其全部还原到本地(但也使用 pg_dump/pg_restore,所以这些也需要可用。

于 2013-11-12T20:39:35.270 回答