はじめに
Railsチュートリアルをやってる中であまり理解ができなかった
マイグレーションについて簡単に備忘がてらまとめます。
マイグレーションとは
①移住。移転。移動。
②現在使用しているシステムやソフトウエアから別のものに移行すること。
参考:Weblio:マイグレーション
Railsのマイグレーションで出来ること
一口で言うと、SQLを意識しなくてもテーブルの作成や変更を行うことができる機能。
例えばMySQLなどのRDMSでテーブルを作成するときには
create table test_table ( id int,user string)
だったり、カラムを変更したいときは
alter table test_table change user user_name
などと、毎回SQL文を発行しなければいけませんが、
マイグレーション機能を使えばSQL文を書くことなくテーブルの操作が行えます。
テーブルを作成する
手順としては以下の2ステップのみ。
手順
①マイグレーションスクリプトファイルの作成
②スクリプトファイルの実行
まず①のマイグレーションスクリプトファイルを作成します。
rails generate migration テーブル名 フィールド名1:型名1,フィールド名2:型名2 ... フィールド名N:型名N
まだこの段階ではデータベースは作成されていないので、
①で作成されたスクリプトファイルを実行してデータベースを作成します。
マイグレーションスクリプトファイルの実行は以下の1文で行えます。
rails db:migrate
因みに誤ってマイグレーションしてしまった場合には
rails db:rollback
でロールバック(=取り消し)が可能です。
サンプル
テーブル名:user
カラム名 | 型名 |
---|---|
name | string |
age | integer |
height | float |
上記のテーブルを作成する場合には、
rails generate migration user name:string age:integer height:float
指定できる型は以下の通りです。
型名 | 説明 |
---|---|
string | 文字列型 |
integer | 整数型 |
float | 浮動小数点数型 |
decimal | 固定長整数型 |
datetime | 日時型 |
timestamp | タイムスタンプ型 |
time | 時刻型 |
date | 日付型 |
binary | バイナリ文字列型 |
boolean | 真偽値型 |
テーブルにカラムを追加する
基本的な構文は以下の通りです。
rails generate migration Addカラム名Toテーブル名 カラム名:型名
先ほど作成したuser
テーブルにfloat型
のweight
という項目を追加してみます。
rails generate migration AddWeightToUser weight:float
完了したらrails db:migrate
を実行しましょう。
テーブルのカラムを削除する
基本的な構文は以下の通りです。
基本的な構文は以下の通りです。
rails generate migration Removeカラム名Toテーブル名 カラム名:型名
先ほど追加したuser
テーブルのweight
という項目を削除してみます。
rails generate migration RemoveWeightToUser weight:float
完了したらrails db:migrate
を実行しましょう。