1.3 データベースの設定

データベースに接続する

Railsは起動時にconfig/database.ymlの情報を使ってデータベースをセットアップします。

SQLiteの設定例

default: &default
  adapter: sqlite3
  pool: 5
  timeout: 5000

development:
  <<: *default
  database: db/development.sqlite3

test:
  <<: *default
  database: db/test.sqlite3

production:
  <<: *default
  database: db/production.sqlite3

MySQLの設定例

default: &default
  adapter: mysql2
  encoding: utf8
  pool: 5
  username: root
  password:
  socket: /tmp/mysql.sock

development:
  <<: *default
  database: sample_development

test:
  <<: *default
  database: sample_test

production:
  <<: *default
  database: sample_production

設定項目の意味

項目
adapter データベース種類
database データベース名
host サーバ名またはIPアドレス
socket ソケットのパス 例)/tmp/mysql.sock
port ポート番号
username ユーザ名
password パスワード
encoding 文字コード
pool コネクションプール数

データベースの基本操作

データベースはrails db:createコマンドで作成することができます。config/database.ymlの情報を元にデータベースが作成されます。

$ rails db:create

# 結果
Created database 'db/development.sqlite3'
Created database 'db/test.sqlite3'

rails db:dropコマンドでデータベースを削除することができます。

$ rails db:drop

# 結果
Dropped database 'db/development.sqlite3'
Dropped database 'db/test.sqlite3'

データベースをリセットする

rails db:resetコマンドは、rails db:droprails db:createを行い、db/schema.rbからテーブルの情報を復元します。

$ rails db:reset

# 結果
Dropped database 'db/development.sqlite3'
Dropped database 'db/test.sqlite3'
Created database 'db/development.sqlite3'
Created database 'db/test.sqlite3'

データベースに初期データを追加する

db/seeds.rb

# coding: utf-8

Model.create(name: "RailsCookBook 1")
Model.create(name: "RailsCookBook 2")

rails db:seedコマンドは、db/seeds.rbに記述されている処理を実行します。

results matching ""

    No results matching ""