【Rails】migrationのメリットと注意点

マイグレーションとは

「移動」「移入」「移住」といった意味をもつ言葉です。

マイグレーションの機能

データベース内にテーブルを作成することができます。

SQLよりも簡単にテーブル作成ができる?

SQLを使ってテーブルを作成する場合

1. テーブルを作成するSQLを作成する

2. コンソール上でデータベースに接続する

3. 作成したSQLを実行する

4. 実行した結果を確認するSQLを作成する

5. 作成したSQLを実行する

マイグレーションを行ってテーブルを作成する場合

1. マイグレーションファイルを作成

$ rails g migration マイグレーションファイル名

2. マイグレーションファイルの中身を書き換える

マイグレーションファイルの中身の例)

names = %w(Taro Jiro Hana John Mike Sophy Bill Alex Mary Tom)
fnames = ["佐藤", "鈴木", "高橋", "田中"]
gnames = ["太郎", "次郎", "花子"]
0.upto(9) do |idx|
  Member.create(
    number: idx + 10,
    name: names[idx],
    full_name: "#{fnames[idx % 4]} #{gnames[idx % 3]}",
    email: "#{names[idx]}@example.com",
    birthday: "1981-12-01",
    sex: [1, 1, 2][idx % 3],
    administrator: (idx == 0),
    password: "asagao!",
    password_confirmation: "asagao!"
  )
end

3. マイグレーションを実行

$ rails db:migrate

また、データベースの種類によっては、SQLの書き方が異なることがあります。

マイグレーションでは、データベースの種類に依存しないこともメリットだと言えそうです。

注意点

開発環境でマイグレーションを実行しても、本番環境に同期されるわけではないので、本番環境でもマイグレーションを実行する必要があります。

参考 f:id:haru89:20200704003853p:plain:w70

https://www.transnet.ne.jp/2015/12/29/rails%E5%88%9D%E5%BF%83%E8%80%85%E3%81%8C%E3%81%A4%E3%81%BE%E3%81%9A%E3%81%8D%E3%82%84%E3%81%99%E3%81%84%E3%80%8C%E3%83%9E%E3%82%A4%E3%82%B0%E3%83%AC%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%80%8Dcolnr/