2012-03-04 15 views
12

Estaba teniendo problemas para enviar datos de mi base de datos de desarrollo a Heroku. Decidí cambiar a PostgreSQL como mi desarrollo db y actualizar database.yml y eliminar la gema sqlite de los gemfiles.Obtiene el error SQLite usando heroku db: push cuando estoy usando PostgreSQL como desarrollo db

La aplicación funciona muy bien contra PostgreSQL pero cuando trato de ejecutar el comando:

heroku db:push 

me sale un error SQLite, que es desconcertante porque no hay ninguna referencia a SQLite en mi proyecto:

! 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 

Aquí está mi archivo database.yml:

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 

estoy usando RVM y he creado una nueva gemset sin suerte.

Incluso he intentado esto, pero tengo el mismo error SQLite: haz

heroku db:push postgres://xx:[email protected]/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 

También he ejecutar la instalación y actualización del paquete.

Johann

Respuesta

10

que estaba teniendo el mismo problema y lo resolvió moviendo grifos en un grupo de desarrollo en mis grifos gemfile- requiere SQLite, que es lo que estaba causando el problema.

group :development do 
    gem 'taps', :require => false # has an sqlite dependency, which heroku hates 
end 
+0

intenté eso, pero obtengo el mismo error (ejecuté la instalación del paquete y la actualización y me comprometí con heroku antes de presionar db ... obtener un error sqlite). – gugguson

+9

Resuelto - la respuesta tekniklr me puso en la pista correcta. El problema era que taps usa sqlite y que no estaba instalado en el equipo del cliente (creo que lo eliminé manualmente manualmente). Después de instalar sqlite funcionó bien. – gugguson

+3

Tuve el mismo problema. Pensé que era un problema casero ya que instalé heroku manualmente en conjunción con usar homebrew en algún momento para probar algo. 'gem install sqlite3' resolvió el problema. – dicato

8

La solución es añadir no sólo taps joya sino también sqlite3 joya en el grupo :development. Si ya está usando en su desarrollo sqlite3, entonces solo bastará con agregar taps gema. Pero estoy usando mysql en mi desarrollo, así que para resolver ese problema tuve que agregar ambos.

group :development do 
    gem 'taps' 
    gem 'sqlite3' 
end 
0

En mi debian sibilante que tenía que instalar:

aptitude install libsqlite3-dev 
4
gem install sqlite3 

resuelto por mí.

0
gem install sqlite3 

es todo lo que necesita. El error viene localmente, no desde Heroku

Cuestiones relacionadas