テーブルを追加!Ruby on Railsでmigrationを使う方法【初心者向け】

初心者向けにRuby on Railsでmigrationを使う方法について解説しています。新規でテーブルを作成したりカラムを追加するなど、Webアプリを開発する上では必須の知識になるので、ぜひ覚えておくと良いでしょう。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

RubyのフレームワークのRuby on Railsでmigrationの使い方について解説しています。

Webアプリを開発していく中でデータベースを扱う際、必要になる知識なので、ぜひ自分でも書いてみて覚えていきましょう。

 

なお本記事は、TechAcademyのWebアプリケーションオンラインブートキャンプの内容をもとに紹介しています。

 

大石ゆかり

田島メンター!!migrationというのは何をするものなんですか〜?

田島悠介

migrationはデータベースにおいて、テーブルを作成する際の設計図のようなものだよ。これを使うことでデータベースの中身を保持したまま項目を追加したり、変更したりということが可能になるんだ。

大石ゆかり

かなり便利そうですね!

田島悠介

また、migrationはmodelを作成したときにも自動で作成されているんだ。なのでしっかりと活用できるように役割と使い方を見ておこう。

 

migrationとは

migrationとはRuby on Railsでデータベースを扱うためのファイルのことです。

migrationを使用することによって、データベースの更新、ロールバック、テーブル履歴などを簡単に参照することができるので、Ruby on Railsで開発するにあたって必ず理解が必要な領域になります。

 

migrationの作成

それではmigrationファイルの作成方法について解説していきます。

マイグレーションファイルを作成するには以下のコマンドを入力してください。

rails g migration マイグレーションファイル名 カラム名:型

またモデルを作成する際に自動でマイグレーションファイルが作成されるので初めてモデルを作る際には以下のコマンドを使用するようにしましょう。

rails g model モデル名 カラム名:型

 

田島悠介

gはgenerateの略で、これもとてもよく使うコマンドなので覚えておこう。

大石ゆかり

カラム名には自分で分かりやすい名前をつけて、型の部分には使いたいデータ型を入れたらいいんですね。

田島悠介

そうだね。短い文字列ならstring、整数ならintegerという風に設定しよう。

 

[PR] Rubyのプログラミングで挫折しない学習方法を動画で公開中

migrationの編集

migrateファイルを作成したものの、後から内容を変更したい場合があると思います。

その時のためにmigrattionファイルはコンソールで作成したものを編集することができます。

例えばuserを作成するまマイグレートファイルを作った場合db/migrate内に以下のようなフォルダが作成されます。

20160918073704_create_users.rb

class CreateUsers < ActiveRecord::Migration[5.0]
  def change
    create_table :users do |t|
      t.string :name
      t.string :email

      t.timestamps
    end
  end
end

後からカラムを追加したい場合はここにt.string :nicknameなどと追加していけば良いです。

 

migrationの実行

migrateファイルは作成しただけでは反映されません。

rake db:migrate

というコマンドをコンソール上で入力することで、migrationファイルの実行がされます。migrationが正しく反映されているかどうかはschemaファイルを確認することで、確認できます。

例えばUserモデルを作成した場合、以下のようにschema内にuserテーブルが追加していれば反映できています。

ActiveRecord::Schema.define(version: 20160918073704) do

 create_table "users", force: :cascade do |t|
   t.string "name"
   t.string "email"
   t.datetime "created_at", null: false
   t.datetime "updated_at", null: false
 end

end

 

以上、migrationの使い方について説明しました。

データベースを扱う上で重要な知識になるので、今のうちに理解しておきましょう。

 

田島悠介

migrationの編集ができたら、必ずrake db:migrateを実行しよう。

大石ゆかり

ここで初めて反映されるんですね。

田島悠介

カラムを追加するときはターミナルで”rails g migration Addカラム名Toテーブル名 カラム名:データ型”と入力しよう。またこのとき”Addカラム名Toテーブル名”の部分は続けて入力し、カラム名とテーブル名は最初を大文字にする必要があるよ。

大石ゆかり

せっかくのマイグレーションですし、追加や変更の方法も覚えないとですね。ありがとうございました!

 

[お知らせ]TechAcademyでは初心者でも最短4週間でオリジナルサービスが作れるRuby on Railsオンラインブートキャンプを開催しています。