ほげほげパッチ

有る事無い事 徒然なるままに

沼った

rails db系のコマンドが効かなくて沼った。。。。

作業記録。起きた事象は見出しのとおり。

  • デフォルトのマイグレーションファイルを適用して、そのあとAdd_columnをmigrateをして、rollbackとかしたせい?

  • ググってたら、「一旦ルーティングのdevise_for :usersを消すと、railsコマンドはつかえるようになる。」とか出てきた。

  • こねこねしてる途中で、適用済みのマイグレーションファイルの削除しちゃって、’ファイルがありません’みたいなエラーになったり・・・。

  • 数時間、試行錯誤。

結果

続きの補足カリキュラム読んだ結果、rails db:migrate:resetなるやり直し方があるとのこと。(ですよね)
これで綺麗さっぱり。補足カリキュラムさんありがとう。

  • rails db:migrate:reset`した時の動作の中身
    1. DB削除
    2. DB再生成
    3. マイグレーションファイルを全部適用(ここで要るやつに絞っとく)

追記(こっちが正解)
└upのマイグレーションファイルを削除したときの対処方法

というか、補足カリキュラムの後半に、正しい対処が出てきた。
どうやら小生はこの沼にいた模様。

  1. up済みのIDから仮のファイルを作成する。
    touch db/migrate/20230729003134_hoge.rb

  2. マイグレファイルとして、仮の記述 をする。 <= これやらんかった。
    ( ~34_hoge.rb と class Hoge < Ac~ は合わす!)

  3. rollbackで、マイグレーションファイルをdownにして削除する。
     └ちなみに、rollbackさんは、1つずつしかdownしないのに、migrateさんはいっぺんにupする。
      └複数downしたい時は、何回もrollback
class Hoge < ActiveRecord::Migration[6.0]
  def change
  end
end