我使用
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 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