Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

【Could not find table 'users’】テスト用のusersテーブルが突然消えてしまった

【エラー発生状況】
railsチュートリアル12章を進めている途中で
cloud9が動かなくなり(接続による問題かとおもいます・・)、30分ほど放置し再度cloud9を立ち上げ直し、念のためすぐにテストを実行したところ、それまで通っていたテストが通らなくなりエラーが複数個出てしまうようになってしまいました。全て同じ内容のため下記に1つ記載させていただきます。

【エラー内容】

ERROR["test_index_as_non-admin", #<Minitest::Reporters::Suite:0x00007f4d34efc238 @name="UsersIndexTest">, 6.004665337999995]
 test_index_as_non-admin#UsersIndexTest (6.01s)
ActiveRecord::StatementInvalid:         
ActiveRecord::StatementInvalid: Could not find table 'users'

合計45個のエラーが発生しており、すべて同じ「Could not find table 'users'」でした。

また、マイグレーションファイルは問題なく存在しているように見えます。

スクリーンショット 2020-11-29 12.44.47.png

【エラー解消のために試したこと】
①本番環境とコンソール上ではusersテーブルが存在しているようで、問題なくユーザー登録ができました。
⇨よって、テスト環境用のusersテーブルがないと推測しております。
②db:migrate
→エラー内容は変わらず
③DBを作り直すために下記を実行

$ bundle exec rake db:drop RAILS_ENV=test  
$ bundle exec rake db:migrate RAILS_ENV=test

→再度テストを実行しましたが同じ結果でした。

この場合どのように対処をしたらよいのでしょうか?
Usersテーブルのテスト用だけを作成し直す方法などはあるのでしょうか?

0

2Answer

dropした場合はcreateを行う必要があると思います。↓を実行するとどうなりますか?

bundle exec rake db:drop RAILS_ENV=test
bundle exec rake db:create RAILS_ENV=test
bundle exec rake db:migrate RAILS_ENV=test
0Like

直近のマイグレーションファイルにタイポなどのエラーがあると思います。

0Like

Your answer might help someone💌