1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

DevToxicClubAdvent Calendar 2024

Day 24

【Rails】スキーマ書き換えダメゼッタイ!!

Last updated at Posted at 2024-12-23

はじめに 🚗

こんにちは!
本記事では Railsのマイグレーションファイルschema.rb ファイル について、わかりやすく解説します。
初心者にも理解しやすいように、これらを車の 設計図監視カメラ に例えて説明していきます。

Railsを学び始めた方が「なるほど、こういうことか!」と思える記事を目指しますので、ぜひ最後までお付き合いください! 🚀

マイグレーションファイルは 設計図 🛠️

1. 設計図としてのマイグレーションファイル

マイグレーションファイル は、データベースの構造を定義・変更するためのファイルです。
これは車の 設計図 に例えることができます。

設計図のポイント

  • 車の設計図には、車種や車の色の仕様が書かれています。
  • 設計図に従って、実際に車が製造されます。
  • 必要に応じて設計図を更新し、新しい部品や機能を追加できます。

Railsでも同様に、マイグレーションファイル に基づいてデータベースが作成・変更されます。

マイグレーションの例 🚘

class CreateCars < ActiveRecord::Migration[6.1]
  def change
    create_table :cars do |t|
      t.string :model      # 車種
      t.string :color      # 車の色
      t.timestamps
    end
  end
end

schema.rbは 監視カメラ 📷

1. 監視カメラとしてのschema.rb

schema.rb は、現在のデータベースの構造を記録しているファイルです。
これは、車を監視する 監視カメラ に例えることができます。

監視カメラのポイント

  • 現在の車の様子を記録します。
  • 実際の車の状態が更新されるたびに監視カメラの記録もアップデートされます。
  • schema.rb は、データベースの最新状態を視覚的に確認する手段です。

schema.rbの例 📋

ActiveRecord::Schema.define(version: 20231203) do
  create_table "cars", force: :cascade do |t|
    t.string "model"      # 車種
    t.string "color"      # 車の色
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
  end
end

この設計図(マイグレーションファイル)に従い、Carsテーブル がデータベースに作成されます。

設計図(マイグレーション)と監視カメラ(schema)の違い

項目  マイグレーションファイル (設計図)🛠️ schema.rb (監視カメラ)📷
役割 データベースの変更指示書 現在のデータベースの状態を記録
更新 手動で作成・編集する rails db:migrate 実行時に自動更新
目的 データベース構造を作成・更新するための計画書 現在のデータベースを確認するための記録
例え 車の設計図 車の状態を記録する監視カメラ

schema.rb を直接編集しない理由 🛑

schema.rb を直接書き換えると、以下のような問題が発生します

正確性が失われる

  • 車の状態を監視する「監視カメラ」の映像を編集しても、車自体には影響を与えません。むしろ、車(データベース)の正確な状態が分からなくなってしまいます。

変更が適用されない

  • 本当に車を改造したい場合は、設計図(マイグレーションファイル)を変更し、改めて製造(マイグレーション)を行う必要があります。

まとめ

マイグレーションファイルは車を作るための設計図

設計図がなければ車を製造できません。
設計図を変更することで、新しい仕様の車が作られます。

schema.rb は車を監視する監視カメラ

現在の車の状態を確認するために使います。
監視カメラ(schema.rb)の記録を変えるだけでは車自体は変わりません。
これらのファイルを正しく理解し、使い分けることで、Railsでのデータベース操作がスムーズになります!

おわりに

今回はRailsのマイグレーションファイルschema.rbを、車の設計図監視カメラ に例えて解説しました。
この記事を通して、データベースの構造管理についての理解が深まったと思っていただけたら嬉しいです。

もし質問や疑問があれば、ぜひコメントで教えてください!
これからも一緒にRailsを学んでいきましょう! 🚗💨

🎄 また来年もお楽しみに!🎅

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?