Saya sedang menulis tugas menyapu yang melakukan beberapa pekerjaan DB di luar Rails / ActiveRecord.
Apakah ada cara untuk mendapatkan info koneksi DB (host, nama pengguna, kata sandi, nama DB) untuk lingkungan saat ini sebagaimana didefinisikan dalam database.yml
?
Saya ingin mendapatkannya sehingga saya dapat menggunakannya untuk terhubung seperti ini ...
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̶
ttg tg tt tt tg tt tg tt tg tg ttg tg ttg ttg ttg ttg. Saya melihat jawaban @KenB.Jawaban Bryan dalam komentar di atas patut mendapat sedikit paparan:
sumber
mengembalikan konfigurasi koneksi dalam hash:
Seperti yang
tpett
disebutkan dalam komentar mereka: solusi ini bertanggung jawab untuk menggabungkan konfigurasi daridatabase.yml
dan dari variabel lingkunganDATABASE_URL
.sumber
database.yml
konfigurasi denganDATABASE_URL
variabel lingkungan.Saya pikir ini adalah solusi paling sederhana. Setelah beberapa pengujian (setidaknya dalam Rails 5.2) ini akan menyelesaikan DATABASE_URL dengan benar.
sumber
Pertanyaan lama tapi ini adalah salah satu perhentian pertama saya dalam mencari cara melakukan ini, jadi saya pikir ini dapat membantu orang lain. Saya biasanya memiliki file .my.cnf di direktori home. Jadi menggunakan permata 'parseconfig' dan beberapa sintaks ERB di file config database.yml saya berarti saya punya file dinamis yang bisa saya rasakan baik dengan memeriksa ke dalam kontrol sumber dan juga menyederhanakan penyebaran (dalam kasus saya). Perhatikan juga daftar soket umum, ini membuatnya lebih mudah untuk memindahkan aplikasi saya ke sistem operasi yang berbeda yang mungkin memiliki jalur soket Unix yang berbeda.
ref: http://effectif.com/articles/database-yml-should-be-checked-in
sumber