今回はよく使う・知っていると便利なmigrateコマンドを紹介します!
マイグレートする
rails db:migrate
特定の環境のみマイグレートする
開発環境の場合(デフォルトなので明示的に指定することはあまりないと思います)
rails db:migrate RAILS_ENV=development
テスト環境の場合
rails db:migrate RAILS_ENV=test
本番環境の場合
rails db:migrate RAILS_ENV=production
マイグレーションの状態を確認する
rails db:migrate:status
以下のように出力されます。
Status Migration ID Migration Name -------------------------------------------------- up 2024100100000 Create users up 2024100200000 Create groups up 2024100300000 Create posts up 2024100400000 Create notices up 2024100500000 Create animals
特定のバージョンだけダウンする
rails db:migrate:down VERSION=2024100300000
特定のバージョンだけアップする
rails db:migrate:up VERSION=2024100300000
特定のバージョンまでマイグレートする
rails db:migrate VERSION=20240100300000
ロールバックする
rails db:rollback
2つ以上のバージョンをロールバックする
rails db:rollback STEP=3
ロールバックして、マイグレートする
rails db:migrate:redo
2つ以上のバージョンをロールバックして、マイグレートする
rails db:migrate:redo STEP=3
DBを作成する
rails db:create
DBを削除する
rails db:drop
シードデータを投入する
rails db:seed
DBをセットアップする
DBの作成、スキーマの読み込み、シードデータの投入が行われます。
スキーマの読み込みでは、マイグレーションファイルは実行されないので、スキーマファイルとマイグレーションファイルに差異がある場合は場合は整合性がとれなくなる可能性があるので注意が必要です。
rails db:setup
DBをリセットする
DBを削除してからセットアップを行います。
rails db:reset
注意点
開発途中では、down
や up
はとても便利ですが、本番適用されている場合や mainブランチなどにマージされている場合はマイグレーションファイルをむやみに修正するのは望ましくありません。
自分の環境と本番環境、チームメンバーの環境で不整合が起きてしまう可能性があります。
便利だからこそ、使い所には注意したいですね。