SakuraWi - BLog

WEBエンジニア。聴いたお話をまとめておく倉庫的な。スタックストックスタック!

database.ymlについて理解する


Ruby on Railsを利用していると必ず確認するファイルがdatabase.ymlです。

新しい環境でプログラミングを始めるときに設定するか、確認することが多いと思います。

お手伝い先でtest先のdatabaseを設定したりする機会があり、理解が浅いなと感じたため勉強がてらメモとして残しておきます。

database.ymlの役割

その名の通りですが、databaseの接続先に関する設定ファイルです。

ruby側、Ruby on Railsがどこのdatabaseに接続するかをこのファイルを参照します。

productionであれば、そちらを、localであればlocalの環境のdatabaseをみにいくことになります。

それぞれの項目

adapter

mysql2や postgresqlなどのデータベースの種類を記載します。

pool

コネクション数の上限

database

DB名

username

接続に使用するユーザの名前

password

接続する際に利用するパスワード

host

host名

port

ポートを指定

デフォルトの設定はこちら

MySQLでは3306

PostgreSQLでは 5432

portは扉の概念で説明されていることが多いですね。

hostやドメインは番地なので、住所っぽく例えるなら

マンションなどを指定がexample.comとすると、portが部屋番号のような役割ということですね。

普段あまり意識しませんが、大切なことだなと思いました。

Railsでの運用

基本的にdatabase.ymlはgithubなどのバージョン管理サイトにアップします。 なので、直接接続先のホストやpasswordを書くとセキュリティ的に問題です。

極論データを書き換えたりもできてしまう可能性があるので。

なので、環境変数を利用するなどして、第三者に漏れないようにする必要があります。

参考

https://toomeeto.hatenablog.com/entry/2019/07/07/025205#:~:text=database.yml%E3%81%A8%E3%81%AF%E2%80%A6,%E3%81%99%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AE%E8%A8%AD%E5%AE%9A%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%80%82&text=database.yml%20%E3%81%AE%E4%B8%AD%E3%81%A7%E3%81%AF,%E3%81%8C%E8%A8%98%E8%BF%B0%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82