見出し画像

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とは.

データベースを削除後、マイグレーションファイルをを古い順から実行するコマンド.



この記事が参加している募集

スキしてみて

振り返りnote

この記事が気に入ったら、サポートをしてみませんか?
気軽にクリエイターの支援と、記事のオススメができます!
思考の流れを共有したくて書いてます. "あ,それわかる" そう思ったら「スキ」してください.