見出し画像

備忘録12:Rails-rollbackを指定・まとめてやる

転職のための3月6日から某スクールにでプログラミング学習を始めた32歳のおっさんです。時系列でHTML⇨CSS⇨Rails & JavaScript &SQLを学習中。
最近C#とPHPにも興味が湧いてきた。

内容:DBのRollbackを指定する・まとめてやる


1:開幕の自問自答

①Rollback操作って最後から順番で面倒じゃあありませんか?
 ⇨物凄く面倒っすね。
②解決したくないですか?
 ⇨なんか良い方法があるんすか?
③なんと、特定のテーブルを指定出来ます。
 更に、いっぺんに複数のテーブルをrollbackも出来ます。
 ⇨マジすか。めっちゃ便利っすね。

と、言うわけで本日はDBのrollbackについてです。
特定、または複数のテーブルをrollbackする方法を書いていきます。


2:全体の流れ

①特定のテーブルをrollbackする
②複数のテーブルをrollbackする


3:始める前の前提

①既にモデル・テーブルを作成している。
②既に「rails db:migrate」を済ませている。
③PC:Mac BigSur Rails:6.0.0


4:特定のテーブルをrollbackする

①まずはテーブルの状態を確認する

スクリーンショット 2021-06-27 23.28.51

・各テーブルの状態を確認する。

rails db:migrate:status


②Migration IDをコピーする

スクリーンショット 2021-06-27 23.28.51

Command + CでOK。


③任意のテーブルをdownさせる

スクリーンショット 2021-06-27 23.42.50

・任意のテーブルを指定する方法

rails db:migrate:down VERSION=ここにコピーしたMigration IDを貼る

今回は一番上の test1sテーブルをrollbackする。


④無事完了

スクリーンショット 2021-06-27 23.45.58

無事に任意のテーブルがdown状態になっている。
出来上がりっ!



5:複数のテーブルをrollbackする

①テーブルの状態を確認する

スクリーンショット 2021-06-27 23.25.33

状態の確認方法はさっきと同じ。


②まとめてdownさせるコマンドを入れる

・テーブルをまとめて落とすコマンド

rails db:rollback STEP=落としたいテーブルの数

テーブルは後ろのテーブルを基準に指定した数がrollbackされる。
今回は後ろ3つをrollbackさせる。


③出来上がり

スクリーンショット 2021-06-27 23.57.18

もちろん、テーブルの数だけ指定すれば一気に全て落とせます。





6:終わりに

特定のテーブルをdownさせるのはカラムに変更を加える際に便利ですね。
addやremoveという手法もありますが開発段階でマイグレーションファイル増やすのはちょっと躊躇われるので。

まとめての方はどうでしょうねー。
レコードを真っさらにするだけなら「rails db:migrate:reset」で良いので。
現在アプリ開発中ですが、色々新しい手法を知ったので忘れる前に書いていこうと考えてます。
次回はdeviseで複数モデルを扱う操作について書こうと思います。






終わり!!!!!!!!!!!!!!!!

この記事が気に入ったらサポートをしてみませんか?