Search code examples
ruby-on-railspostgresqlherokutaps

Get SQLite error using heroku db:push when I'm using PostgreSQL as development db


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


Solution

  • 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