【Rails】ActiveRecord::StatementInvalid: Mysql2::Error: Error dropping database (can't rmdir './app_name_test', errno: 39): DROP DATABASE IF EXISTS `app_name_test`
RSpecを実行しようとしてエラー発生
RSpecをdocker環境で実行しようとしてタイトルのようなエラーが発生しました。
>>> docker-compose run web rspec spec/system/records_spec.rb rails aborted! ActiveRecord::StatementInvalid: Mysql2::Error: Error dropping database (can't rmdir './app_name_test', errno: 39): DROP DATABASE IF EXISTS `app_name_test`
テスト環境のdbに何らかの異常があると思い、とりあえずリセットを試みました。
しかし、いずれのコマンドも同様のエラーになりました。
# すべてエラーに! docker-compose run web rails db:reset RAILS_ENV=test docker-compose run web rails db:drop RAILS_ENV=test docker-compose run web rails db:migrate RAILS_ENV=test
mysql/app_name_testを手動削除して元気!
結局、ローカルに存在する、テストのデータベースを右クリック削除し、docker-compose run web rails db:create RAILS_ENV=test
(からのmigrate)することで解決しました。
[:300]
RSpecも無事に動くようになりました。