У меня есть database.yml, который использует переменные окружения, например:рельсы консоль не будет подключаться к базе данных
production:
adapter: mysql2
encoding: utf8
reconnect: false
database: <%= ENV['RAILS_DB_NAME'] %>
pool: 5
host: 127.0.0.1
port: 3306
username: <%= ENV['RAILS_DB_USER'] %>
password: <%= ENV['RAILS_DB_PASS'] %>
Однако, когда я использую:
$ export RAILS_DB_NAME="rails_db"
$ rails c production
> User.all
I get an error:
Mysql2::Error: Access denied for user 'root'@'localhost' (using password: NO)
Я могу видеть мою переменную environement в одной и той же консоли:
> ENV['RAILS_DB_NAME']
"rails_db"
Но если сбросить активное соединение CONFIG его равна нулю:
> ActiveRecord::Base.connection_config
{:adapter=>"mysql2", :encoding=>"utf8", :reconnect=>false, :database=>nil, :pool=>5, :host=>"127.0.0.1", :port=>3306, :username=>nil, :password=>nil}
Любые идеи, что пойдет не так?
Как я могу узнать, почему приложение rails не получает переменные окружения?
TIA!
Обновление: я должен уточнить, что $ rails db отлично работает. Это всего $ rails c, который не может подключиться к db.
Обновление 2: Когда я клонирую проект в новую папку и устанавливаю пакет, он отлично работает там. Это должно быть быть чем-то с моей папкой. Diff не показывает различий. Weird!
Извините, я оставил его выше. Он указан, а также переменные среды. И это не корень. Ошибка выше, потому что все три места, которые я называю ENV [] (база данных, имя пользователя, пароль), приходят в нуль. Конфигурация базы данных отлично работает, я запускаю $ rails db. Это всего лишь $ rails c, что нет. – peterept