はじめに
あんまりつかうことがないので忘れがちなマイグレーションファイルの削除について....
statusでみる
& bundle exec rails db:migrate:status
up 202312250xxxx Delete hoge
up 202401091xxxxx Add hoges
up 20240207xxxxxx Change hoge body
up 2024030xxxxxxx Add hoge messsage
消す
up 202312250xxxx Delete hoge
up 202401091xxxxx Add hoges // これを消す
up 20240207xxxxxx Change hoge body
up 2024030xxxxxxx Add hoge messsage
downする
$ bundle exec rails db:down VERSION=202401091xxxxx
statusをみる
up 202312250xxxx Delete hoge
down 202401091xxxxx Add hoges
up 20240207xxxxxx Change hoge body
up 2024030xxxxxxx Add hoge messsage
いいね
次に消す
$rm db/migrate/202401091xxxxx_add_hoges_.rb
statusをみる
up 202312250xxxx Delete hoge
up 20240207xxxxxx Change hoge body
up 2024030xxxxxxx Add hoge messsage
消えてる。いいね。
NO FILEになっちゃったマイグレーションファイルを消す
間違って消しちゃったりしたマイグレーションファイルがいる....
こんな感じのやつ
up 20xxxxxxxxxxxx ********** NO FILE **********
IDをコピーする
20xxxxxxxxxxxx
同じIDでダミーのマイグレーションファイルを適当な名前で作成
$ touch db/migrate/20xxxxxxxxxxxx_tekitou.rb
作成されたファイルを修正する
20xxxxxxxxxxxx_tekitou.rb
class Tekitou < ActiveRecord::Migration[6.1]
def change
// 何も書かなくて良いです
end
end
statusを見るとこうなっているはず
up 20xxxxxxxxxxxx Tekitou
downする
down 20xxxxxxxxxxxx Tekitou
消す
$ rm db/migrate/db/migrate/20xxxxxxxxxxxx_tekitou.rb
statusを見て消えているかどうかの確認をして終わり
さいごに
こういうときたまにある。