Я пишу грабли, которые выполняют работу некоторых БД вне Rails / ActiveRecord.
Есть ли способ получить информацию о соединении с БД (хост, имя пользователя, пароль, имя БД) для текущей среды, как определено в database.yml
?
Я хотел бы получить его, чтобы я мог использовать его для подключения, как это ...
con = Mysql.real_connect("host", "user", "pw", "current_db")
Rails.configuration
̶R̶a̶i̶l̶s̶.̶c̶o̶n̶f̶i̶g̶u̶r̶a̶t̶i̶o̶n̶
̶ ̶ ̶ ̶t̶h̶e̶n̶ ̶w̶h̶a̶t̶ ̶t̶o̶ ̶̶ original̶ original̶ Я вижу ответ @KenB.Ответ Брайана в приведенном выше комментарии заслуживает чуть большего разоблачения:
источник
возвращает конфигурацию соединения в хэше:
Как отмечается
tpett
в их комментарии: это решение учитывает слияние конфигурации изdatabase.yml
переменной среды и из нееDATABASE_URL
.источник
database.yml
конфигурации сDATABASE_URL
переменной среды.Я думаю, что это самое простое решение. После некоторого тестирования (по крайней мере в Rails 5.2) это разрешит DATABASE_URL правильно.
источник
Старый вопрос, но это была одна из моих первых остановок в поиске того, как это сделать, поэтому я думаю, что это может помочь кому-то еще. У меня обычно есть файлы .my.cnf в домашнем каталоге. Таким образом, использование гема parseconfig и некоторого синтаксиса ERB в моем конфигурационном файле database.yml означает, что у меня есть динамический файл, и я могу чувствовать себя уверенно при проверке контроля версий, а также упростить развертывание (в моем случае). Также обратите внимание на список распространенных сокетов, это облегчает перемещение моего приложения в другие операционные системы, которые могут иметь другой путь к сокету Unix.
ссылка: http://effectif.com/articles/database-yml-should-be-checked-in
источник