Невозможно открыть консоль рельсов: производственная база данных не настроена, устанавливается установление_подключения ActiveRecord:: AdapterNotSpecified
Мое приложение работает очень хорошо в производстве - по крайней мере, часть веб-сайта. Проблема возникает только при SSH в моем VPS и делает "рельсы c RAILS_ENV = production". Консоль отлично работает в режиме разработки.
У меня была эта проблема раньше (или, по крайней мере, одна, которая похожа на нее), и исправила ее, добавив "reconnect: true" в database.yml, но на этот раз это не исправило. Здесь начинается вывод ошибки:
/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'
И для настроек моей производственной базы данных:
production:
adapter: mysql
encoding: utf8
database: tour_production
pool: 5
username: [user]
password: [password]
socket: /var/run/mysqld/mysqld.sock
reconnect: true
Я не могу понять, почему он работает через пассажира, но не повезло с консолью. Во всяком случае, я использую Rails 3, Ruby 1.9.2, Passenger и Nginx.
Я делал немного материала через Runner, что раздражает. Я бы хотел, чтобы это исправлено. Поэтому благодарим кучу за любую помощь.
Ответы
Ответ 1
Когда вы используете консоль, вы указываете среду как первый аргумент, а не как переменную среды. Итак:
ruby script/console production
загрузит производственную среду.
Ваше сообщение об ошибке связано с тем, что оно ищет среду RAILS_ENV=production
, а не только production
.
Ответ 2
Последний способ Rails 3 сделать это просто:
bundle exec rails console production
Ответ 3
@Shadwell является правильным, однако, если вы после последовательного синтаксиса, вы можете установить RAILS_ENV
в начале, как это:
RAILS_ENV=production rails console
Ответ 4
Я решил с запуском:
RAILS_ENV=production bundle exec rails c
подробнее о ссылка
или
fooobar.com/info/365232/...