こんにちは!社会人1年目の初心者エンジニアです。
最近、データベースのスキーマを変更するためにマイグレーションを利用することが多くなりました。
この記事では、テーブルに複数のカラムを追加する方法と、マイグレーションを実行する際の注意点について説明します。
1. change_table を使って複数カラムを追加する
新しいカラムを追加する際、change_tableメソッドを使うと、複数のカラムを一度にまとめて追加できます。以下は、employeesテーブルにphone_numberとdepartmentを追加するマイグレーションの例です。
class AddColumnsToEmployees < ActiveRecord::Migration[6.0]
def change
change_table :employees do |t|
t.string :phone_number, comment: '電話番号'
t.string :department, comment: '部署名'
end
end
end
change_tableの利点
- 上記の例のように、change_tableを使うことで、複数のカラムを一度に追加できる
- 複数のカラムをまとめて追加することで、マイグレーションファイルがすっきりする
コメントを追加するメリット
- commentオプションを追加することで、以下のメリットがあります
- データベーススキーマを視覚的に理解しやすくなる
- データベースを見直す際に、コメントがあるとカラムの役割が明確になり、修正や新規機能の追加がスムーズに行える
コメント追加した際の例が以下になります。
t.string :phone_number, comment: '電話番号'
t.string :department, comment: '部署名'
2. テーブルのカラムを確認する
テーブルのカラムを確認したい場合、以下のコマンドを使用します。
ActiveRecord::Base.connection.columns(:確認したいテーブル名).map(&:name)
このコマンドを実行することで、テーブルに存在するカラム名のリストを確認できます。
3. マイグレーションの取り消し
もし最後に適用したマイグレーションを取り消したい場合、次のコマンドを使用します。
rails db:rollback
このコマンドを実行することで、最後に適用したマイグレーションが取り消されます。
4. マイグレーションファイルの修正に関する注意
一度マイグレーションを実行した後に、マイグレーションファイルを修正して再度rails db:migrateを実行することはできません。一度実行されると、そのマイグレーションはデータベースに適用済みとして記録されるため、修正したファイルは再実行されません。
修正が必要な場合の対応方法
もしマイグレーションファイルを修正する必要が生じた場合、以下の手順を行なってください
1. 修正したいマイグレーションを適用した後であれば、まずrails db:rollbackコマンドを使用して最後のマイグレーションを取り消します
rails db:rollback
2. マイグレーションファイルを修正
ロールバックした後、必要な変更をマイグレーションファイルに追加した後、再度マイグレーションを実行する。
rails db:migrate
まとめ
Railsのマイグレーションを利用することで、データベースのスキーマを簡単に管理できます。change_tableを使って複数のカラムを一度に追加することができ、効率的に作業を進めることができます。カラムにコメントを追加することで、可読性やメンテナンス性が向上するため、ぜひ活用してみてください。この記事を参考にして、マイグレーションを活用してみてください。