I was having problems pushing data from my development db to Heroku. I decided to switch to PostgreSQL as my development db and have updated database.yml and removed the sqlite gem from the gemfiles.

The app runs fine against PostgreSQL but when I try to run the command:

heroku db:push

I get an SQLite error which is puzzling because there is no reference to sqlite in my project:

 !    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

Here is my database.yml file:

development:
  adapter: postgresql
  encoding: unicode
  database: xxxx
  pool: 5
  timeout: 5000
  username: xxxx
  password: xxxx

test:
  adapter: postgresql
  encoding: unicode
  database: test
  pool: 5
  timeout: 5000
  username: xx
  password: xx

production:
  adapter: postgresql
  encoding: unicode
  database: test
  pool: 5
  timeout: 5000

I'm using RVM and I have created a new gemset without any luck.

I even tried this but got the same SQLite error:

heroku db:push postgres://xx:xx@localhost/xx

 !    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

I have also run bundle install and bundle update.

Johann

share|improve this question

67% accept rate
feedback

3 Answers

up vote 10 down vote accepted

I was having the same problem and solved it by moving taps into a development group in my gemfile- taps requires sqlite, which is what was causing the problem.

group :development do
  gem 'taps', :require => false # has an sqlite dependency, which heroku hates
end
share|improve this answer
   
tried that, but get the same error (I ran bundle install and update and commited to heroku before pushing db ... get an sqlite error). – gugguson Mar 4 at 19:45
7  
Solved it - tekniklr answer put me on the correct track. The problem was that taps is using sqlite and that wasn't installed on the client machine (I think I manually removed it manually before). After I installed sqlite it worked fine. – gugguson Mar 4 at 20:12
3  
I had the same problem. I thought it was a homebrew problem as I installed heroku manually in conjunction to using homebrew at some point to test something. 'gem install sqlite3' solved the problem. – Locker537 May 8 at 22:39
taps doesn't have sqlite3 runtime dependency – Vanuan Oct 3 at 19:20
It might not anymore, but 7 months ago it did :) – tekniklr Oct 19 at 17:37
feedback

On my debian wheezy I needed to install:

aptitude install libsqlite3-dev
share|improve this answer
feedback

The solution is to add not only taps gem but also sqlite3 gem into the :development group. If you are using in your development sqlite3 already, then just adding taps gem will be enough. But I am using mysql on my development so to solve that problem I had to add both.

group :development do
  gem 'taps'
  gem 'sqlite3'
end
share|improve this answer
feedback

Your Answer

 
or
required, but never shown
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.