プログラミングマガジン

プログラミングを中心にIT技術をできるだけわかりやすくまとめます。

  • ホーム
  • Ruby on Rails
  • 【Ruby on Rails】YAMLの基本と、データベースの接続設定をするには?
 
 
     
  • サーバー言語  
    • Python
    • Ruby
    • PHP
    • SQL
  •  
  • インフラ  
       
    • AWS
    •  
    • 基本
    • Git
  • Web
       
    • Web開発
    • JavaScript
    • Vue.js
    • React
  •  
  • 設計  
       
    • 実装設計
    • DB設計
  • 問い合わせ
  

【Ruby on Rails】YAMLの基本と、データベースの接続設定をするには?

06.19

  • miyabisan2
  • コメントを書く

この記事は2分で読めます

YAML(ヤムル)は、Ruby on Railsの基本的な設定ファイルの形式です。

YAML(ヤムル)の見方

YAML(ヤムル)の基本的な形式としては、下記のようになっています。

1
キー:値

百聞は、一見にしかずなので、具体例を挙げてYAMLファイルの読み方を覚えましょう。

例(config/database.ymlの場合)

例えば、データベース接続設定ファイルである「config/database.yml」の場合を例に取りましょう。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
default: &default
  adapter: sqlite3
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  timeout: 5000
 
development:
  <<: *default
  database: db/development.sqlite3
 
test:
  <<: *default
  database: db/test.sqlite3
 
production:
  <<: *default
  database: db/production.sqlite3

一つのキーに、複数のサブキーを設定している。

「default」というキーに対して、字下げ(インデント)して、「adapter」、「pool」、「timeout」が続いています。

defaultという一つのキーに対して、入れ子にして複数のキーを設定するという意味になります。

「&」を使って、共通の設定を生成している。

「&default」として先頭に「&」をつけた値は共通変数になります。

その後、「<<: *default」とすることで、共通設定を、それぞれ適応させています。

環境を指定している。

YAMLの中で使われている下記のキーは、特別な意味を持っていて環境によって適応されるかが変わるものになります。

キー 説明
development 開発時に使用します。(デフォルトです。)
test 自動テスト実行時に使用します。
production 開発済みのRailsアプリを本番上で稼動する際に使用します。

環境を変えるには?

なお、環境を変更したい場合は「rails s」コマンドでサーバーを起動する際に、「eオプション」をつけて環境を指定します。

例えば、test環境で動作したい場合は、「rails s -e test」と指定します。(何も指定しなかった場合は、develpmentが適用されます。)

config/database.yml

Ruby on Railsで、データベース接続を扱う際は、「config/database.yml」にて設定をします。

Railsアプリを「rails newコマンド」で作成した際に、「-dオプション」で使用するデータベースを指定できました。

-dオプションを省略した場合は「sqlite3」を使うことを前提にしたymlが作成されます。

デフォルトで、「sqlite3」を使用することを前提にしたファイルが作成されています。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
[root@localhost config]# more database.yml
# SQLite version 3.x
#   gem install sqlite3
#
#   Ensure the SQLite 3 gem is defined in your Gemfile
#   gem 'sqlite3'
#
default: &default
  adapter: sqlite3
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  timeout: 5000
 
development:
  <<: *default
  database: db/development.sqlite3
 
# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
  <<: *default
  database: db/test.sqlite3
 
production:
  <<: *default
  database: db/production.sqlite3

設定項目

設定値 説明
adapter データベース接続に使用するgem
pool コネクションプーリングで使用するコネクションの上限数
timeout データベースからの応答待ちの上限時間(ミリ秒)
database データベース名

コネクションプーリングについては、下記の記事でも解説しています。(Tomcatの説明ですが、Rubyでも用途は同じです。)

【Java】JDBCをWebアプリで使う場合で考慮すること(データソースなど)

データベースを作成するには?

下記のコマンドを実行すれば、DBが作成できます。

1
rails db:create

既にRailsアプリを作成時に生成されているかもしれませんが…。

生成結果

スポンサーリンク
  • 2018 06.19
  • miyabisan2
  • コメントを書く
  • Ruby on Rails
  • Tweets Twitter
  • このエントリーをはてなブックマークに追加
  • LINEで送る

関連記事

  1. 2019 12.08

    【Ruby on Rails】バージョンアップ対策

  2. 2019 12.04

    【Ruby on Rails】production環境での秘密情報の管理(Credentials)

  3. 2020 03.15

    【Ruby on Rails】「フィクスチャ」について

  4. 2020 07.18

    【Ruby on Rails】環境変数に関する知識、direnv

  5. 2018 06.20

    【Ruby on Rails】アセット(CSS,JavaScript)やマニフェストファイルの仕組み(Sprockets、Webpacker)

  6. 2020 12.19

    【Ruby on Rails】モデルの基本、データ型、scope、メソッド(クラス、インスタンス)の違い、委譲

  • コメント ( 0 )
  • トラックバック ( 0 )
  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

返信をキャンセルする。

【Ruby on Rails】ビューテンプレート(ER…

【Ruby on Rails】の「O/Rマッパー」であ…

RETURN TOP

著者プロフィール

エンジニア歴10年で過去に業務系、Webデザイン、インフラ系なども経験あります。現在はWeb系でフロントエンド開発中心です。

詳細なプロフィールはこちら

スポンサーリンク

カテゴリー

  • Android
  • AngularJS
  • API
  • AWS
  • C++
  • CSS
  • cursor
  • C言語
  • DDD
  • DevOps
  • Django
  • Docker
  • Figma
  • Git
  • GitLab
  • GraphQL
  • gRPC
  • Hasura
  • Java
  • JavaScript
  • Kubernetes
  • Laravel
  • linux
  • MySQL
  • Next.js
  • nginx
  • Node.js
  • NoSQL
  • Nuxt.js
  • Oracle
  • PHP
  • Python
  • React
  • Redux
  • Rspec
  • Ruby
  • Ruby on Rails
  • Sass
  • Spring Framework
  • SQL
  • TypeScript
  • Unity
  • Vue.js
  • Webサービス開発
  • Webデザイン
  • Web技術
  • インフラ
  • オブジェクト指向
  • システム開発
  • セキュリティ
  • その他
  • データベース
  • デザインパターン
  • テスト
  • ネットワーク
  • プログラミング全般
  • マイクロサービス
  • マイクロソフト系技術
  • マルチメディア
  • リファクタリング
  • 副業
  • 未分類
  • 業務知識
  • 生成AI
  • 設計
  • 関数型言語
RETURN TOP

Copyright ©  プログラミングマガジン | プライバシーポリシー