12

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

gugguson
  • 819
  • 2
  • 13
  • 32

5 Answers5

10

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
tekniklr
  • 125
  • 2
  • 5
  • 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 04 '12 at 19:45
  • 9
    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 04 '12 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. – dicato May 08 '12 at 22:39
  • taps doesn't have sqlite3 runtime dependency – Vanuan Oct 03 '12 at 19:20
  • It might not anymore, but 7 months ago it did :) – tekniklr Oct 19 '12 at 17:37
8

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
JjP
  • 599
  • 5
  • 5
4
gem install sqlite3

solved it for me.

n3o
  • 2,795
  • 5
  • 24
  • 37
0

On my debian wheezy I needed to install:

aptitude install libsqlite3-dev
user
  • 86,916
  • 18
  • 197
  • 190
luke
  • 1
0
gem install sqlite3 

Is all you need. The error is coming locally, not from Heroku

Cheyne
  • 1,964
  • 4
  • 27
  • 43