0
0

rails g model と rails g migration の違い

Posted at

はじめに

rails g modelrails g migrationの違いについて、なんとなくの理解しかできていなかったので備忘録としてまとめます。

rails g modelとは

このコマンドは、新しいモデル(データベーステーブルの設計図)を作成します。モデルはデータベースのテーブルに対応し、アプリケーション内でのデータの取り扱いやロジックの管理に使用されます。
コマンドの記述方法は以下のようになります。

$ rails g model モデル名 カラム名:データ型

実行方法

例えば、以下のコマンドを実行すると、Userモデルに対応するデータベーステーブルを作成するマイグレーションファイルが生成されます。

$ rails g model User name:string email:string

続いて、このマイグレーションを実行して変更をデータベースに適用します。

$ rails db:migrate

rails g migrationとは

このコマンドは、手動でマイグレーションファイルを生成します。主にデータベーススキーマの変更、つまり既存のテーブルに新しいカラムを追加したり、カラムを削除したりするために使用されます。
コマンドの記述方法は以下のようになります。

$ rails g migration モデル名 カラム名:データ型

実行方法

1. 新しいマイグレーションファイルを生成
例えば、usersテーブルにageカラムを追加したい場合は以下のコマンドを実行すると、add_age_to_usersという名前のマイグレーションファイルが生成されます。

$ rails g migration add_age_to_users age:integer

これで、db/migrateディレクトリに新しいマイグレーションファイルが作成されます。
このマイグレーションファイルを編集して、usersテーブルにageという名前の新しいカラムを追加できます。

# db/migrate/xxxxxx_add_age_to_users.rb
class AddAgeToUsers < ActiveRecord::Migration[6.0]
  def change
    add_column :users, :age, :integer
  end
end

続いて、このマイグレーションを実行して変更をデータベースに適用します。

$ rails db:migrate

まとめ

rails g modelは新しいモデルを作成するために使い、rails g migrationは手動でマイグレーションファイルを生成し、データベースのカラムの追加や削除を行うために使用されます。

0
0
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
0
0