ruby – Heroku db:pull Taps加载错误:没有这样的文件加载 – pg

我使用 ruby 1.9.2-p320和Heroku的Taps一起使用’db’命令得到以下错误,例如:
heroku db:pull --app my-app

这会产生如下错误

Taps Load Error: no such file to load -- sqlite3

-要么-

Taps Load Error: no such file to load -- pg

(是的,顺便说一句,我有所有正确的宝石,包括postgres – 本地运行良好 – 和sqlite3,以及卸载,重新安装和更新水龙头和犀牛宝石,包括它们以及不包括在我的Gemfile中.我正在运行Rails 3.2.6)

虽然有一个已知的错误导致“时区位移”错误heroku db:push not working,using taps gem,我没有看到任何直接解决此问题的SO帖子.

解决方法

在postgres实例之间迁移数据时,不再使用Taps作为推荐的工具.请试试 heroku-pg-transfer.

这只有在您使用production databases或新Heroku postgres dev or basic plans之一时才有效.如果您仍在旧的共享数据库计划中,我建议您切换到新的开发计划.

首先,在Heroku上找到数据库的URL:

$heroku config:get DATABASE_URL
postgres://yada:yada@ec2-107-21-122-141.compute-1.amazonaws.com:5432/123

然后从heroku数据库传输到本地数据库

$heroku plugins:install https://github.com/ddollar/heroku-pg-transfer
$heroku pg:transfer -t postgres://localhost/dbname -f postgres://yada:yada@ec2.../123

由于heroku-pg-transfer工具使用postgres的原生pg_dump工具,因此它是一种更具可预测性和弹性的工具.

在这里写了更多关于它的内容Using heroku pg:transfer to migrate Postres databases

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...