Installing Heroku Toolbelt has broken Taps

2.2k Views Asked by At

I've been hapilly using the Heroku and Taps gems for a while now, regularly doing a heroku db:push to push my database up to production.

This morning I noticed a message that the Heroku gem was deprecated, having been superseded by the Heroku Toolbelt. So I uninstalled the gems and installed the Heroku Toolbelt.

The next time I went to push my database I got the following error:

!    Taps Load Error: cannot load such file -- taps/operation
!    You may need to install or update the taps gem to use db commands.
!    On most systems this will be:
!    
!    sudo gem install taps

Both Heroku and Taps are correctly installed, but in frustration I've tried following the instructions ('install or update the taps gem to use db commands') without success. The (re)install goes fine but I still get the above error when I try and push the database. Can anyone suggest a fix? I'm using rbenv.

4

There are 4 best solutions below

5
On BEST ANSWER

Well I uninstalled the toolbelt using commands from here:

rm -rf /usr/local/heroku
rm -rf /usr/bin/heroku

Then removed the following from my .bash_profile

### Added by the Heroku Toolbelt

export PATH="/usr/local/heroku/bin:$PATH"

And it works again.

Moral of the story - avoid the Heroku Toolbelt and stick to the gems.

2
On

Can you try PG Transfers plugin for Heroku, documentation is on the page itself.

https://github.com/ddollar/heroku-pg-transfer

This seems to be recommended approach now by Heroku.

0
On

Well, Heroku suggests using PG Backups add-on. Taps+Heroku combination make problems to many, partially because Taps is designed to produce database-agnostic dumps which is not that easy.

The disadvantage is you got to upload your dump to S3 or something.

0
On

You don't have to remove toolbelt to use a gem version for one off cases such as broken taps:

% gem install heroku
% $(rbenv root)/shims/heroku version
heroku-gem/2.35.0 (x86_64-darwin12.2.0) ruby/1.9.3

This is using rbenv, but rvm, chruby or the like should be similar.