Rails Ambassador

データベースの設定と接続

このLessonではRailsコマンドによるデータベースの設定について学習します。

データベース設定ファイルの確認

データベースの設定ファイルはconfig/database.ymlになります。 早速開いてみましょう。Railsアプリ設定時にデータベースをPostgreSQLに指定している方は以下のようになっていると思います。※コメント部分は削除しています。

default: &default
  adapter: postgresql
  encoding: unicode
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>

development:
  <<: *default
  database: board_development

test:
  <<: *default
  database: board_test

production:
  <<: *default
  database: board_production
  username: board
  password: <%= ENV["BOARD_DATABASE_PASSWORD"] %>

「.yml」拡張子のファイルはYAML(ヤムル)ファイルと言われます。このファイルはインデントで階層構造を表現していますので、インデントに気を付ける必要があります。インデントは必ず半角スペース二つで付けてください。
さて、この中で4つの大きな階層があることがわかります。

  • default(共通設定)
  • developnemt(開発環境)
  • test(テスト環境)
  • production(本番環境)

開発環境(development)のデータベースの設定を見てみましょう。
「<<: *default」の部分はdefaultの設定を引き継いでいるという事です。
「database: board_development」となっていますので、作成されるデータベースの名前は「board_development」になります。もしこの名前を変更したい場合は変更しておいてください。
※本カリキュラムではこのまま進めますので同じように進めたい方は変更しないでください。

データベースの作成

ではデータベースを作成していきましょう。カレントディレクトリを確認して、boardアプリのディレクトリにいることを確認してから行ってください。

$ pwd
xxxx/board
$ rails db:create

以下のように表示されましたか?
Created database 'board_development'
Created database 'board_test'

「board_development」「board_test」というデータベースができましたね。こちらはdatabase.ymlファイルによってできたものです。名前を変更した方はその名前のデータベースができていると思います。
実際にPostgreSQLクライアントを立ち上げて確認もしておきましょう。

$ psql -d board_development 
接続しましたらデータベース(DB)一覧を確認しましょう。
コマンドはバックスラッシュと小文字のエルです。

postgres=# \l

「board_development」「board_test」がありましたね?なかった方はrails db:createコマンド時にエラーメッセージが出ていると思います。確認してみましょう。
データベース作成が確認できた方はお疲れ様でした。PostgreSQLクライアントからログアウトしておきましょう。

postgres-# \q

データベースの削除

もし何らかの理由で作成したデータベースを削除することがあるかもしれません。その時は以下コマンドで作成したデータベースを削除することができます。現在ディレクトリを確認して実行しましょう。

$ pwd
xxxx/board
$ rails db:drop

以下のように表示されたら正しく削除できています。

Dropped database 'board_development'
Dropped database 'board_test'

PostgreSQLクライアントでも削除できていることを確認しておきましょう。

$ psql -d board_development 
postgres-# \l

確認できましたら今後はこのデータベースを使っていきますので再度データベースの作成をしておいてください。

データベースの設定と接続まとめ

このLessonではデータベースの設定ファイル「config/database.yml」ファイルについて学習しました。また、データベースの作成・削除のコマンドも学習しましたのでこのコマンドを覚えておきましょう。

データベースの作成

$ rails db:create

データベースの削除

$ rails db:drop