マイグレーション入門


マイグレーション入門

マイグレーションとは

text
マイグレーションは、データベーススキーマの継続的な変更を、簡単に行なうための便利な手法です。マイグレーションではRubyのDSLを使っているので、生のSQLを作成する必要がなく、スキーマへの変更をデータベースの種類に依存せずに済みます。

なるほど本来であればテーブルを追加したときや、テーブルに対して属性を追加した時などは
SQLを作成する必要がありますよね。

CREATE TABLE HOGE

こんな感じで生のSQLを書いてデータベースへの変更をするがそれをする必要がなくなります。
またデータベースの種類に依存しません。
なんとなく使ってたけどすごいよねー。

マイグレーションの例

productsというテーブルを追加する例です。

nameというstringカラムと、descriptionというtextカラムが含まれています。主キーはidという名前で暗黙に追加されます。idはActive Recordモデルにおけるデフォルトの主キーです。

ruby.rb

class CreateProducts < ActiveRecord::Migration[5.0]
  def change
    create_table :products do |t|
      t.string :name
      t.text :description

      t.timestamps
    end
  end
end

このマイグレーションを実行することでテーブルが生成されます。
またロールバックをすることでこのテーブルを削除することもできます。

マイグレーションを作成

rails generate migration AddPartNumberToProducts part_number:string

上記のコードを実行すると以下のようなマイグレーションファイルが生成されます。
productsに対してカラムを追加するという内容になっています。

ruby.rb
class AddPartNumberToProducts < ActiveRecord::Migration[5.0]
  def change
    add_column :products, :part_number, :string
  end
end

DBに反映される

これまでのマイグレーションファイルをDBに反映させます。

#実行
rails db:migrate
#ロールバック
rails db:rollback

以上のようにしてマイグレーションを実行、またはロールバックができるというわけですね。

ざっくりとですがマイグレーションについてまとめてみました。
今までなんとなく使っていた私ですが、
どういったものなのか少しずつ理解できるようになってきました。

本日は以上です
1人前のエンジニアになるまであと91日