アヤオのレベリングキロク

日々のインプットをここでアウトプットします

【Rails】migrationしたりし直したりするときのコマンドまとめ

きっかけ

新しいサービスの開発をお手伝いしている時、仕様がどんどん変わり、DBの構成の変化も大きかったです。

その時テーブルのカラムの構成を変えたりすると、今あるデータをまるっと入れ替えたいことがありました。

Railsにはサクッと直してくれるコマンドがたくさんあるので、整理しておこうという感じです。

コマンド集

  • テーブルを作る
rails db:migrate
  • テーブルは消さずにデータだけ消す
rails db:reset
  • テーブルも削除して、全てのテーブルをmigrateし直す
rails db:migrate:reset

seed.rbにある初期設定のデータセットを一括で入れる

rails db:seed
  • ひとつ前のmigrationをなかったことにする
    • ※migrateする時と同じmigrationファイルの状態じゃないとできない
rails db:rollback

→これを使う時は、

  1. rails db:rollback
  2. migrationファイルを修正
  3. rails db:migrate する

の順にやらないとエラーになる

  • rollbackが使えない時

  • よく使うデータや重要な検証ケースのデータをseedに書く

  • rails db:migrate:reset をする
  • rails db:migrate をする
  • seedを流す

rails db:migrate:resetはMySQLでいうdrop tableなので、以前のmigrationファイルがどうなっているかは関係なく実行できる

※seedに書かれたデータ以外はすべてなくなるので注意

最後に

今日は簡単によく使うDB関連のコマンドをメモ的にまとめました。

自分のアプリケーションもいつか作ってみたいので、その時に活用できそうかな。