テーブルを追加!Ruby on Railsでmigrationを使う方法【初心者向け】
初心者向けにRuby on Railsでmigrationを使う方法について解説しています。新規でテーブルを作成したりカラムを追加するなど、Webアプリを開発する上では必須の知識になるので、ぜひ覚えておくと良いでしょう。
TechAcademyマガジンは受講者数No.1のオンラインプログラミングスクールTechAcademy [テックアカデミー]が運営。初心者向けに解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。
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オンラインブートキャンプを開催しています。