Ne peut pas ouvrir la console rails: base de données de production n'est pas configuré, establish_connection soulève ActiveRecord::AdapterNotSpecified
Mon application fonctionne assez bien parfaitement dans la production – le site web de la partie, au moins. Le seul problème apparaît lorsque je SSH sur mon VPS et faire "rails c RAILS_ENV=production". La console fonctionne très bien, le mode de développement.
J'ai eu ce problème avant (ou au moins un qui ressemble à ça) et qu'il est corrigé par l'ajout de "reconnecter: true" à la base de données.yml – mais il n'a pas corrigé cette fois-ci. Voici le début de la sortie d'erreur:
/home/tour/.rvm/gems/ruby-1.9.2-p0/gems/activerecord-3.0.0/lib/active_record/connection_adapters/abstract/connection_specification.rb:62:in `establish_connection': RAILS_ENV=production database is not configured (ActiveRecord::AdapterNotSpecified)
from /home/tour/.rvm/gems/ruby-1.9.2-p0/gems/activerecord-3.0.0/lib/active_record/connection_adapters/abstract/connection_specification.rb:55:in `establish_connection'
from /home/tour/.rvm/gems/ruby-1.9.2-p0/gems/activerecord-3.0.0/lib/active_record/railtie.rb:59:in `block (2 levels) in <class:Railtie>'
from /home/tour/.rvm/gems/ruby-1.9.2-p0/gems/activesupport-3.0.0/lib/active_support/lazy_load_hooks.rb:36:in `instance_eval'
from /home/tour/.rvm/gems/ruby-1.9.2-p0/gems/activesupport-3.0.0/lib/active_support/lazy_load_hooks.rb:36:in `execute_hook'
from /home/tour/.rvm/gems/ruby-1.9.2-p0/gems/activesupport-3.0.0/lib/active_support/lazy_load_hooks.rb:26:in `on_load'
from /home/tour/.rvm/gems/ruby-1.9.2-p0/gems/activerecord-3.0.0/lib/active_record/railtie.rb:57:in `block in <class:Railtie>'
from /home/tour/.rvm/gems/ruby-1.9.2-p0/gems/railties-3.0.0/lib/rails/initializable.rb:25:in `instance_exec'
from /home/tour/.rvm/gems/ruby-1.9.2-p0/gems/railties-3.0.0/lib/rails/initializable.rb:25:in `run'
from /home/tour/.rvm/gems/ruby-1.9.2-p0/gems/railties-3.0.0/lib/rails/initializable.rb:50:in `block in run_initializers'
Et pour ma production de la base de données paramètres:
production:
adapter: mysql
encoding: utf8
database: tour_production
pool: 5
username: [user]
password: [password]
socket: /var/run/mysqld/mysqld.sock
reconnect: true
Je ne peux pas obtenir mon esprit autour de laquelle il fonctionne par le biais de passagers, mais pas de chance avec la console. De toute façon, je suis l'aide de Rails 3, Ruby 1.9.2, de Passagers et de Nginx.
J'ai fait quelques petits trucs par Coureur, ce qui est ennuyeux. J'aimerais régler ce problème. Donc merci beaucoup pour toute aide.
OriginalL'auteur Nathan | 2010-09-06
Vous devez vous connecter pour publier un commentaire.
Lorsque vous utilisez la console, vous spécifiez l'environnement comme premier argument, plutôt que comme une variable d'environnement. Donc:
va charger l'environnement de production.
Votre message d'erreur est parce qu'il est à la recherche pour l'environnement
RAILS_ENV=production
plutôt que de simplementproduction
.OriginalL'auteur Shadwell
La dernière Rails 3 façon de faire c'est tout simplement:
bundle exec console rails de la production d'œuvres
Votre méthode est la meilleure. Mise à jour de ma réponse.
OriginalL'auteur YWCA Hello
@Shadwell est correcte, mais si vous êtes après un uniforme de la syntaxe, vous pouvez définir
RAILS_ENV
au début comme ceci:OriginalL'auteur Zubin
J'ai résolu avec run:
plus de détails sur lien
ou
stackoverflow
OriginalL'auteur akbarbin