こんにちは。たいら(@tairaengineer2)です。
転職を繰り返し現在4社経験している、11年目エンジニアです。
この記事では、 Ruby on Railsでテーブルにカラムを追加するやり方について丁寧に解説します。
前提条件:実行環境について
実行環境は以下の通りです。
| OS | Windows10 | 
|---|---|
| Rubyのバージョン | 2.6.6 | 
| Ruby on Railsのバージョン | 6.0.3.6 | 
| SQLiteのバージョン | 3.32.3 | 
この記事ではRuby on Railsのプロジェクトは
C:\rails_study\sample
に作成しています。

テーブルにカラムを追加するやり方を解説
テーブルにカラムを追加するやり方を解説します。
この記事では、usersテーブルにstring型の「address」というカラムを追加します。
まずマイグレーションファイルを作成します。
新規作成するコマンドは
| 
					 1  | 
						rails generate migration 【実行する処理+テーブル名】 【カラム名】:【型】  | 
					
です。
詳しくはこちらの記事をご参考ください。
usersテーブルにstring型の「address」というカラムを追加するのでコマンドは
| 
					 1  | 
						rails generate migration AddAddressToUsers address:string  | 
					
です。
たたくと

| 
					 1 2 3  | 
						C:\rails_study\sample>rails generate migration AddAddressToUsers address:string       invoke  active_record       create    db/migrate/20221027092012_add_address_to_users.rb  | 
					
C:\rails_study\sample\db\migrate
配下にマイグレーションファイルが作成されます。
中身は以下のようになってます。
| 
					 1 2 3 4 5  | 
						class AddAddressToUsers < ActiveRecord::Migration[6.0]   def change     add_column :users, :address, :string   end end  | 
					
特に中身を変更する必要はありません。
マイグレーションファイル実行前にusersテーブルとschema_migrationsテーブルを確認します。
schema_migrationsテーブルとは、マイグレーションが実行されたかを管理するためのテーブルです。
詳しくはこちらの記事をご参考ください。
usersテーブルは以下のようになっています。

schema_migrationsテーブルは以下のようになっています。

では、マイグレーションファイルを実行します。
実行するコマンドは
| 
					 1  | 
						rails db:migrate  | 
					
です。
たたくと

| 
					 1 2 3 4 5  | 
						C:\rails_study\sample>rails db:migrate == 20221027092012 AddAddressToUsers: migrating ================================ -- add_column(:users, :address, :string)    -> 0.0040s == 20221027092012 AddAddressToUsers: migrated (0.0045s) =======================  | 
					
作成したマイグレーションファイルが無事実行されました。
以上でテーブルにカラム追加の作業は完了です。
本当にカラム追加ができているかを、usersテーブルとschema_migrationsテーブルを確認します。
usersテーブルでは「address」カラムが追加されていることが確認できました。

schema_migrationsテーブルでは「20221027092012」のレコードが増えているので、作成したマイグレーションファイルが実行されたことが確認できました。

まとめ:テーブルにカラムを追加してみよう
以上がRuby on Railsでテーブルにカラムを追加するやり方の解説でした!
あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ
コメント