Edited at

Railsのrake db:xxxコマンドでtable doesn't existのエラーが出る際の対処

More than 3 years have passed since last update.


問題点

$ bundle exec rake db:migrate

$ bundle exec rake db:schema:load
$ bundle exec rake db:test:prepare
etc...

といったDBセットアップ用のrakeタスクを実行した際に

rake aborted!

ActiveRecord::StatementInvalid: Mysql2::Error: Table '(テーブル名)' doesn't exist: SELECT `(テーブル名)`.* FROM `(テーブル名)`
...

とエラーが出てrakeタスクが中断されてしまいました。


解決策

詳細は不明ですがfactoryファイルが原因だったみたいです。

spec/factories/を一時的にどっかに退避させておいて

$ bundle exec rake db:schema:load

#他コマンドでもok!

とかすると無事テーブルが作成されました

なんか釈然としませんが同じような症状の人の助けになれば(´・_・`)