2011-09-10 17 views
16

Sto seguendo le istruzioni in rails tutorial e mi sono bloccato quando ho provato ad usare il comando scaffold.rails sqlite adapter error

Quando si esegue:

rails generate scaffold User name:string email:string 

ottengo l'errore:

C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/gems/activerecord-3.1.0/lib/active_record/connection_adapters/abstract/connection_specification.rb:71:in `rescue in establish_connection': Please install the sqlite3 adapter: `gem install activerecord-sqlite3-adapter` (can't activate sqlite3 (~> 1.3.4), already activated sqlite3-1.3.3-x86-mingw32. Make sure all dependencies are added to Gemfile.) (RuntimeError) 

Esecuzione:

gem install activerecord-sqlite3-adapter 

ho ottenuto l'errore:

ERROR: Could not find a valid gem 'activerecord-sqlite3-adapter' (>= 0) in any repository 
ERROR: Possible alternatives: activerecord-jdbcsqlite3-adapter, activerecord-sqlserver-adapter, activerecord-nulldb-adapter, activerecord-spatialite-adapter, activerecord-simpledb-adapter 

mio Gemfile si presenta così:

source 'http://rubygems.org' 
gem 'rails', '3.1.0' 
gem 'sqlite3', '1.3.3' 
... 

Sono in esecuzione su Windows 7 x64 del sistema operativo.

Qualche idea?

risposta

18

Ok ho trovato il problema. Ho notato che la mia installazione Rails ha sia SQLite 1.3.3 e 1.3.4 ho cambiato la mia Gemfile da:

gem 'sqlite3', '1.3.3' 

a:

gem 'sqlite3', '1.3.4' 

che ha risolto il problema. Grazie @holger-just per avermi indirizzato alla riga relativa nel messaggio di errore in their answer.

+1

Ho aggiunto il mio esattamente come questo: gem 'sqlite3'. E questo ha risolto lo stesso problema per me :-) – MarlonRibunal

3

La parte importante del messaggio di errore è questo frammento:

can't activate sqlite3 (~> 1.3.4), already activated sqlite3-1.3.3-x86-mingw32. Make sure all dependencies are added to Gemfile. 

Per rimediare, si dovrebbe sempre eseguire i comandi attraverso bundle exec in questo modo

bundle exec rails generate scaffold User name:string email:string 

In questo modo, si dà bundler a Prendi il pieno controllo del tuo $LOAD_PATH che probabilmente risolverà questi problemi.

+0

Grazie a exec @Holager non ho risolto il problema ma mi hai indicato la riga relativa nel messaggio di errore. Questo mi ha aiutato a risolvere il problema. –

2

ho avuto questo errore troppo, comprare il mio problema era leggermente diverso. il problema è che sqlite3-ruby è deprecato, per essere sostituito da sqlite3. nel webcast di michael hartl, usava ancora il vecchio sqlite3-ruby.

Ho modificato il mio gemfile per usare sqlite 1.3.4 invece di sqlite3-ruby 1.3.1. ri-eseguito installazione di bundle, e voilà, problema risolto!

2

Invece di

gem install activerecord-sqlite3-adapter 

corsa

gem install sqlite3 
2

anche on Rails Tutorial, corse:

$ rake db:migrate 

ottenuto il seguente errore:

Please install the sqlite3 adapter: gem install activerecord-sqlite3-adapter (sqlite3 is not part of the bundle. Add it to Gemfile.).

Ran:

$ gem install activerecord-sqlite3-adapter

Got:

ERROR: Could not find a valid gem 'activerecord-sqlite3-adapter' (>= 0) in any repository

Modificato Gemfile secondo una delle risposte di cui sopra:

gem 'sqlite3', '1.3.4'

ha ottenuto un altro errore in modo dovuto installare:

$ gem install sqlite3 -v '1.3.4' 

provato a fare funzionare $ rake db: la migrazione di nuovo, ma ha ottenuto un altro errore, questa volta simile alla risposta di cui sopra:

Please install the sqlite3 adapter: gem install activerecord-sqlite3-adapter (can't activate sqlite3 (~> 1.3.5), already activated sqlite3-1.3.4. Make sure all dependencies are added to Gemfile.)

così cambiato Gemfile a:

gem 'sqlite3', '1.3.5'

ed ho ottenuto un altro messaggio di errore per assicurarsi 'gem install sqlite3 -v' 1.3.5 'ha successo (wtf ?! va bene di nuovo). Installato correttamente, eseguito installazione di bundle.

esecuzione provato:

$ rake db:migrate 

Non è successo niente, quindi provato:

$ bundle exec rails generate scaffold User name:string email:string 

Per un altro suggerimento sopra. E alla fine ha funzionato. Il tutorial mi ha avvisato di un laborioso processo di installazione, ma mi sembrava di dover mischiare e abbinare almeno altre 5 persone. Spero che questo aiuti la prossima persona.

Problemi correlati