質問: imageテーブル作って migrationファイルの中身追加してrails db:migrateしました。 その後に元に戻りたくて gitで一個前にコミットしてたところに戻ってきました。 そして、動作確認しようとしたらNoMethodErrorが出ます そんなカラムないよと言われているので原因の箇所はわかり 該当するファイル変更したく rails db:rollback したのですが下記のエラが出ます。 ActiveRecord::UnknownMigrationVersionError: schema.rdの中にはimageテーブル作った際のmigrationファイルの中身が記載されてますが db/migrate/の中のファイルにはgitで一個前にコミットしてたところに戻ったところのファイルしかありません。 ``` ファイル名schema.rb create_table "images", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t| t.string "image" t.integer "item_id" t.datetime "created_at", null: false t.datetime "updated_at", null: false end create_table "items", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t| t.text "name" t.string "size" t.text "status" t.text "derivery_fee" t.text "derivery_method" t.integer "price" t.text "derivery_estimated" t.text "description" t.integer "image_id" t.text "category_id" t.text "brand_id" t.string "prefecture_id" t.datetime "created_at", null: false t.datetime "updated_at", null: false end ``` create_table "images" を全て消して create_table "items" t.integer "image_id"を変更すればなおると思いますが。 rails db:rollbackしようにもできませんし db/migrate/の中身はschema.rbと異なりどうすればいいかわかりません。 テーブル作成した後に以前のコミット部分に戻るのはよくないのでしょうか?
回答: > > テーブル作成した後に以前のコミット部分に戻るのはよくないのでしょうか? > > > はい、マイグレーションファイルがないと`db:rollback`はできません。 > > どうすればいいかわかりません。 > > > いったんgitを最新のマイグレーションがあるところまで戻してから`db:rollback`してください。