LoginSignup
3
2

More than 1 year has passed since last update.

【Rails】WIndows環境でrails db:resetしたとき、Couldn't drop database 'db/development.sqlite3'のエラーの対処法

Posted at

症状

Windows環境でrails db:resetしたとき、下記エラーが表示されてしまいました。
マイグレーションファイルを更新して、データベースにあるテーブルの内容を更新したく、rails db:resetを実行しました。

ターミナル
rails db:reset
Permission denied @ apply2files - C:/Users/ユーザー名/environment/sampleApp/db/development.sqlite3
Couldn't drop database 'db/development.sqlite3'
rails aborted!
Errno::EACCES: Permission denied @ apply2files - C:/Users/ユーザー名/environment/sampleApp/db/development.sqlite3
bin/rails:4:in `<main>'
Tasks: TOP => db:drop:_unsafe
(See full trace by running task with --trace)

以下のコマンドで検索すると、どうやらRails自体のバグがあるようで、Windows環境で特定のコマンドを実行しようとすると、上記のようなエラーが発生するようです。
該当コマンドは以下です。

対象コマンド
rails db:drop
rails db:reset
rails db:migrate:reset

今回はrails db:resetが該当します。

解決方法

railsのdbのフォルダに移動し、手動でデータベースを削除する必要があるとのこと。
実際にやってみると、正常にデータベースが削除できました。

del development.sqlite3

migrationファイルを編集し、下記コマンドを実行すると正常にテーブルが更新できました。

rails db:migrate

参考

【Ruby on Rails】rails db:dropコマンドを実行したとき、エラーメッセージ「Couldn’t drop database ‘db/development.sqlite3’ rails aborted!」が表示されてしまう原因と解決策をお伝えします
https://www.tairaengineer-note.com/rails-couldnt-drop-database/

3
2
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
3
2