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を書くとセキュリティ的に問題です。
極論データを書き換えたりもできてしまう可能性があるので。
なので、環境変数を利用するなどして、第三者に漏れないようにする必要があります。