Rails マイグレーションとは.
マイグレーションとは.
マイグレーションとは.
一言で.
データベース内のテーブル,カラム,インデックス等を追加や削除,既存のデータ修正などを簡単に行える機能.
マイグレーションの詳細.
データベーススキーマの継続的な変更 (英語) を,統一的かつ簡単に行なうための便利な手法.マイグレーションではRubyのDSLを使っているので,生のSQLを作成する必要がなく,スキーマとスキーマへの変更をデータベースの種類に依存せずに済む. 引用:Railsガイド
マイグレーションにより,Active Recordは,db/schema.rbファイルを更新し,データベースの最新の構造と一致するようにする役割がある.
Active Recordとは.
MVCのモデルの部分.
モデルにActiveRecordが適用されることでデータベースとスムーズにやりとりをすることができる.
ActiveRecordについて.
2つの関係性.
マイグレーションは,指示を出す.
指示を実行するのがActiveRecord.
マイグレーションの手順.
①マイグレーションファイルを作成する.
②マイグレーションファイルをデータベースに適用する.
以下のようなpostモデルがあると仮定します.
class CreatePosts < ActiveRecord::Migration[5.0]
def change
create_table :posts do |t|
t.string :name
t.timestamps
end
end
end
Post(投稿)の内容を表示するためのdescriptionカラムを追加する場合について見ていきます.
①マイグレーションファイルを作成する.
$ rails g migration AddDescriptionToPosts description:text
※マイグレーションファイルの名前.
マイグレーションファイルの名前の付け方にはポイントがあります.
Addカラム名Toテーブル名
上記のように名前をつけるのが一般的です.
上記のコードにより以下のようにマイグレーションファイルが作成されます.
class AddDescriptionToPosts < ActiveRecord::Migration[5.0]
def change
add_column :posts, :description, :string
end
end
②マイグレーションファイルをデータベースに適用する.
以下のコードを実行することでマイグレーションファイルをデータベースに適用することができます.
$ rails db:migrate
またテーブルからカラムを削除するときなどは以下のコードを使用します.
$ rails db:rollback
マイグレーション中のエラーについて.
開発環境でエラーが出たら.
$ rails db:migrate:reset
開発環境でのテストデータリセットされても問題なければ上記のコードを実行してみる.
rails db:migrate:resetとは.
データベースを削除後、マイグレーションファイルをを古い順から実行するコマンド.
この記事が気に入ったらサポートをしてみませんか?