2012-03-04 10 views
12

Avevo problemi a trasferire dati dal mio sviluppo db a Heroku. Ho deciso di passare a PostgreSQL come mio sviluppo db e ho aggiornato database.yml e rimosso la gem sqlite dai gemfiles.Ottieni errore SQLite usando heroku db: push quando sto usando PostgreSQL come sviluppo db

L'applicazione viene eseguita correttamente contro PostgreSQL, ma quando si tenta di eseguire il comando:

heroku db:push 

ottengo un errore SQLite che è sconcertante perché non v'è alcun riferimento a SQLite nel mio progetto:

! 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 

Ecco il mio file 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 

sto usando RVM e ho creato un nuova gemst senza fortuna.

Ho provato anche questo, ma ottenuto lo stesso errore SQLite: bundle install

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 

Ho anche correre e aggiornamento fascio.

Johann

risposta

10

ho avuto lo stesso problema e risolto spostando rubinetti in un gruppo di sviluppo nei miei rubinetti gemfile- richiede sqlite, che è ciò che stava causando il problema.

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

provato, ma ottenere lo stesso errore (ho eseguito l'installazione di bundle e l'aggiornamento e l'impegno a heroku prima di premere db ... ottenere un errore sqlite). – gugguson

+9

Risolto - risposta tekniklr mettimi sulla traccia corretta. Il problema era che i tap stavano usando sqlite e che non era installato sul computer client (penso di averlo rimosso manualmente manualmente prima). Dopo aver installato sqlite, ha funzionato bene. – gugguson

+3

Ho avuto lo stesso problema. Ho pensato che fosse un problema homebrew in quanto ho installato heroku manualmente in combinazione con l'uso di homebrew a un certo punto per testare qualcosa. 'gem install sqlite3' ha risolto il problema. I rubinetti – dicato

8

La soluzione è quello di aggiungere non solo taps gioiello ma anche sqlite3 gioiello nel gruppo :development. Se stai già utilizzando lo sviluppo sqlite3, sarà sufficiente aggiungere la gemma taps. Ma sto usando lo mysql sul mio sviluppo quindi per risolvere quel problema ho dovuto aggiungere entrambi.

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

Sulla mia debian wheezy avevo bisogno di installare:

aptitude install libsqlite3-dev 
4
gem install sqlite3 

risolto per me.

0
gem install sqlite3 

È tutto ciò che serve. L'errore è venuto localmente, non da Heroku