我正在尝试将我的本地Postgres数据库推送到我的Heroku应用程序,并按照Heroku指南,我做了heroku db:push
但是我收到以下错误:
leonsas@leonsas-VirtualBox:~$ heroku db:push
! Taps Load Error: cannot load such file -- sqlite3
! You may need to install or update the taps gem to use db commands.
! On most systems this will be:
!
! sudo gem install taps
我已经尝试了sudo gem install taps
,sudo gem install sqlite3
,但我无法让它发挥作用。我在使用postgres时试图加载sqlite3 db的任何想法?
答案 0 :(得分:14)
在postgres实例之间迁移数据时,不再使用Taps作为推荐使用的工具。请改为尝试heroku-pg-transfer。
仅当您使用production databases或新Heroku postgres dev plan之一时,此功能才有效。如果您仍然使用较旧的共享数据库计划,我建议您切换到新的开发计划。
首先,在Heroku上找到数据库的URL:
$ heroku config:get DATABASE_URL
postgres://yada:yada@ec2-107-21-122-141.compute-1.amazonaws.com:5432/123
然后从本地数据库转移到heroku db:
$ heroku plugins:install https://github.com/ddollar/heroku-pg-transfer
$ heroku pg:transfer -f postgres://localhost/dbname -t postgres://yada:yada@ec2.../123
由于heroku-pg-transfer工具使用postgres的原生pg_dump工具,因此它是一种更具可预测性和弹性的工具。