Piszę zadanie rake, które wykonuje jakąś pracę DB poza Railsami / ActiveRecord.
Czy istnieje sposób na uzyskanie informacji o połączeniu z bazą danych (host, nazwa użytkownika, hasło, nazwa bazy danych) dla bieżącego środowiska, zgodnie z definicją w database.yml
?
Chciałbym to zdobyć, więc mogę go użyć do połączenia w ten sposób ...
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̶
̶ to co się różnić od odpowiedź? ̶ Być może odpowiedź była edytowana od oryginału. Widzę odpowiedź @KenB.Odpowiedź Bryana w powyższym komentarzu zasługuje na trochę więcej uwagi:
źródło
zwraca konfigurację połączenia w skrócie:
Jak
tpett
zauważono w ich komentarzu: to rozwiązanie uwzględnia scalanie konfiguracji zidatabase.yml
ze zmiennej środowiskowejDATABASE_URL
.źródło
database.yml
konfiguracji zeDATABASE_URL
zmienną środowiskową.Myślę, że to najprostsze rozwiązanie. Po kilku testach (przynajmniej w Railsach 5.2) spowoduje to poprawne rozwiązanie DATABASE_URL.
źródło
Stare pytanie, ale to był jeden z moich pierwszych przystanków w szukaniu, jak to zrobić, więc myślę, że może to pomóc komuś innemu. Zwykle mam pliki .my.cnf w katalogu domowym. Tak więc użycie klejnotu „parseconfig” i jakiejś składni ERB w moim pliku konfiguracyjnym database.yml oznacza, że mam plik dynamiczny, który mogę dobrze sprawdzić w kontroli źródła, a także uprościć wdrożenia (w moim przypadku). Zwróć także uwagę na listę typowych gniazd, co ułatwia przenoszenie mojej aplikacji do różnych systemów operacyjnych, które mogą mieć inną ścieżkę gniazda Unix.
ref: http://effectif.com/articles/database-yml-should-be-checked-in
źródło