質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

解決済

1回答

676閲覧

ruby on rails    rails db:rollback してもマイグレーションファイル戻ってこない

MISIAN-MISIAN

総合スコア73

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

0クリップ

投稿2019/12/13 01:58

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と異なりどうすればいいかわかりません。

テーブル作成した後に以前のコミット部分に戻るのはよくないのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

テーブル作成した後に以前のコミット部分に戻るのはよくないのでしょうか?

はい、マイグレーションファイルがないとdb:rollbackはできません。

どうすればいいかわかりません。

いったんgitを最新のマイグレーションがあるところまで戻してからdb:rollbackしてください。

投稿2019/12/13 02:04

maisumakun

総合スコア145183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

MISIAN-MISIAN

2019/12/13 02:52

テーブル作成のちに コミット部分に戻るのはリスクがあるのが知れました 最新コミット残していなかったので チーム開発のメンバーにマスターにアップしてもらいそれをいただきました ありがとうございました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問