2010-11-20 5 views
1

Mein database.yml sieht ungefähr so ​​aus:Warum sucht Rails auf meinem Produktionsserver nach SQLite3?

# SQLite version 3.x 
# gem install sqlite3-ruby (not necessary on OS X Leopard) 
development: 
    adapter: sqlite3 
    database: db/development.sqlite3 
    pool: 5 
    timeout: 5000 

test: 
    adapter: sqlite3 
    database: db/test.sqlite3 
    pool: 5 
    timeout: 5000 

production: 
    adapter: mysql2 
    encoding: utf8 
    reconnect: false 
    database: project_production 
    pool: 5 
    username: root 
    password: mypwd 
    host: /var/mysql/mysql.sock 

Projekt auf Produktionsserver geladen wird, und ich bin Ausführung:

server:projectfolder admin$ rake db:schema:load RAILS_ENV=production 

und immer wieder:

Could not find sqlite3-ruby-1.3.2 in any of the sources 
Try running `bundle install`. 

Ich habe getan, Bundle installieren, aber nicht sicher, warum es sich auch um sqlite3 in der Produktion kümmern würde?!?

FYI - mein Gemfile hat:

group :development, :test do 
    gem 'sqlite3-ruby', :require => 'sqlite3' 
end 

Kann mir jemand helfen, zu sehen, was ich habe es vermasselt?

+0

scheint seltsam, wenn Sie sqlite aus dem Gemfile insgesamt entfernen tut es immer noch dies? Wenn ja, hast du vielleicht eine Abhängigkeit von einem Gemfile, das auf sqlite verweist, gibt es irgendwelche gemusterten Edelsteine? – scaney

+0

OK, ich quittiere die sqlite3-Zeilen in der Gemdatei und führe dann meinen Rake-Befehl erneut aus ... und jetzt kommt er zurück und sagt es ** Ich konnte webrat = 0.7.2 in keiner der Quellen finden. ** Webrat ist gelistet in meinem Gemfile aber nur in einer "Testgruppe"?!? was gibt? mit ** Rails 3.0.3 ** (oder versuchen zu) ... – Meltemi

+0

hmmm, ich nehme an die app wird hauptsächlich bastlerplatte erzeugt? Sie haben nichts mit internen verändert? Wurde auch die eigentliche Original-App mit R3.0.3 oder einer früheren Version erstellt? – scaney

Antwort

1

Angenommen, Ihre sqlite3-ruby Juwel bereits in eine Gruppe ist, die nicht :production enthält, können Sie einfach laufen:

env RAILS_ENV=production bundle install --without development test 

Dieses eine .bundle Verzeichnis erstellen wird, Rubin anweist Laden eines Edelsteins nicht auf :production.

+0

Entschuldigung für meine Ignoranz, neu dazu, aber sollte das Juwel "sqlite3-ruby" sein? – Meltemi

+0

Ja, sollte es ... Ich habe es nur in Eile geschrieben. –

+0

ok. und was passiert mit dem ': require => 'sqlite3'-Teil in meiner ursprünglichen Aussage. ist es nicht mehr nötig? – Meltemi

0

Try running:

export RAILS_ENV='production' 
rake ... 
+0

Ist das nicht das, was er lief? – alternative

+0

versuchte dies ... das gleiche Problem ... – Meltemi

+0

aber jetzt echo '$ RAILS_ENV' gibt' production' anstatt einer Leerzeile zurück. – Meltemi