LoginSignup
11
10

More than 1 year has passed since last update.

【解決方法】rails db:rollbackができないエラー

Last updated at Posted at 2020-04-10

rails db:rollbackができないときの解決方法

チーム開発中にアプリケーションのテーブルを修正することになりました。
dbをrollbackした際に以下のエラーが発生したので、、、、

rails aborted!
ActiveRecord::UnknownMigrationVersionError:

単純な作業内容ですが、備忘録として残します。

rails db:rollbackを実行してみた

まず、テーブル修正のため、railsのマイグレーションファイルをデータベースからrollbackすることに

$ rails db:rollback

エラーが発生し、rollbackできない

rails aborted!
ActiveRecord::UnknownMigrationVersionError: 

一度、データベースごとrails db:drop 

ただ、この方法はdb内のデータを全て消してしまうので、実行には注意が必要です。

Dropped database 'アプリケーション名 development'
Dropped database 'アプリケーション名'

そして、アプリケーション立ち上げ時と同様にrails db:createをしましょう

Created database 'アプリケーション名 development'
Created database 'アプリケーション名'

無事にアプリケーションのデータベースを作ることができました。

マイグレーションファイルの修正を確認したら、rails db:migrateを実行

== 20200402084559 DeviseCreateUsers: migrating ================================
-- create_table(:users)
   -> 0.0100s
-- add_index(:users, :email, {:unique=>true})
   -> 0.0190s
-- add_index(:users, :reset_password_token, {:unique=>true})
   -> 0.0078s
== 20200402084559 DeviseCreateUsers: migrated (0.0370s) =======================

== 20200407090006 CreateProducts: migrating ===================================
-- create_table(:products)
   -> 0.0112s
== 20200407090006 CreateProducts: migrated (0.0113s) ==========================

== 20200409054432 CreateImages: migrating =====================================
-- create_table(:images)
   -> 0.0174s
== 20200409054432 CreateImages: migrated (0.0175s) ============================

無事、マイグレートできた様子。
一応、rails db:migrate:statusでも確認

database: アプリケーション名 development

 Status   Migration ID    Migration Name
--------------------------------------------------
   up     20200402084559  Devise create users
   up     20200407090006  Create products
   up     20200409054432  Create images

statusがアップになっているので、データベースにも反映されているようだ。
downだと、マイグレーションファイルがpendingされているとエラーが出てしまうので注意。

念のため、sequelProで確認したところ、しっかりと反映されていました。

簡単なエラーでしたが、何かの役に立てば幸いです。

11
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
10