0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Tasks: TOP => db:migrate:status => db:load_config => environment (See full trace by running task with --trace)のエラーの解決方法

Last updated at Posted at 2023-05-09

経緯

マイグレーションのあと勝手にコマンドが入って実行中のタスクをctrl+Cをして強制終了したあとデバイスの導入を継続していたが、下記エラーが発生してdbのマイグレーションを実行しようとしたら実行で きなくなった
ターミナル
Tasks: TOP => db:migrate:status => db:load_config => environment
(See full trace by running task with --trace)

解決までの道のり

  1. routes.rbにあるdevise_for :usersというコードを削除する(これでrailsコマンドが使えるようになります!)
  2. rake db:rollbackでマイグレーションファイルをロールバックする。(これをすることによって先ほど作ったuserテーブルのマイグレーションファイルをなかったことにしましょう。)
  3. userテーブルを作ったときのマイグレーションファイルを削除する。
  4. rails d model userを行いuserモデルを削除する。

上記の2の工程で同じエラーが出た。

bundle exec rake db:migrate:status

を実行すると、

ターミナル
database: ファイル名_development

 Status   Migration ID    Migration Name
--------------------------------------------------
   up     000             ********** NO FILE **********
  down    20230505232327  Devise create users

マイグレーションファイルがupの状態で消されたためエラーになっている様子。

マイグレーションファイルをコマンドで削除してみる

1.まず名前を付けてあげる

touch db/migrate/000_hoge.rb

再度 bundle exec rake db:migrate:status実行すると以下の結果に

ターミナル
 Status   Migration ID    Migration Name
--------------------------------------------------
   up     000             Hoge
  down    20230505232327  Devise create users

無事に名前が付きました

その後

bundle exec rake db:migrate:down VERSION=000_Hoge.rb
を実行

ターミナル
rake aborted!
Invalid format of target version: `VERSION=000_Hoge.rb`
/home/user/.rbenv/versions/2.6.5/bin/bundle:23:in `load'
/home/user/.rbenv/versions/2.6.5/bin/bundle:23:in `<main>'
Tasks: TOP => db:migrate:down
(See full trace by running task with --trace)

まだエラー
コマンドの記述間違えたのか?と思いコマンドの記述を下記に変更して実行
rails db:migrate:down VERSION=000 

down成功!

この後消していく
rm db/migrate/000_hoge.rb

$:~/ディレクトリ名/ファイル名 rm db/migrate/20230505232327_devise_create_users.rb
$:~/projects/protospace-38955$ bundle exec rake db:migrate:status

database: ファイル名_development

 Status   Migration ID    Migration Name
--------------------------------------------------

大成功!!

これでdeviseの導入から再スタートできそう

0
1
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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?