Ruby on Railsにはマイグレーションという、データベースの変更管理を簡単に行うための便利な枠組みが用意されています。
この投稿では、このマイグレーション機能の使い方についてまとめたいと思います。(徐々に更新していきます。)
マイグレーションファイルの作成
マイグレーションファイルとは、データベースの変更内容を記述したruby形式のファイルで、app/db/migrate以下に保存します。このファイルをコミットに含めることで、ソースコードの変更に同期する形で、データベースの変更履歴をGit等のソースコードリポジトリ上で管理することができます。
マイグレーションファイルは、手動で作成しても良いですが、作成するためのrailsコマンドが用意されています。
$ rails g migration <変更内容>
変更内容には、どのような変更を行うのかを英語で記述します。例えば、新しくusersテーブルを作成する場合は
$ rails g migration create_users
とします。上記はスネークケースで書きましたが、パスカルケースで
$ rails g migration CreateUsers
としても同じ結果が得られます。このコマンドを実行すると、app/db/migrateディレクトリ以下に次のような名前のファイルが作成されます。
20201207233110_create_users.rb
最初の数字の列はマイグレーションファイルの作成日時を「yyyyMMddhhmmss」形式で入力されます。
ファイルの中身は次のようになります。
class CreateUsers < ActiveRecord::Migration[6.0]
def change
create_table :users do |t|
end
end
end