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でも用途は同じです。)
データベースを作成するには?
下記のコマンドを実行すれば、DBが作成できます。
1 |
rails db:create |
既にRailsアプリを作成時に生成されているかもしれませんが…。
この記事へのコメントはありません。