データベースの設定ファイルは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つの大きな階層があることがわかります。
開発環境(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