20

私は実行しようとし$ bundle exec rake db:resetましたが、コンソールで次のものを見つけました

Couldn't drop db/development.sqlite3 : #<Errno::EACCES: Permission denied - c:/sample_app/db/development.sqlite3>
db/development.sqlite3 already exists
-- create_table("users", {:force=>true})
   -> 0.3940s
-- add_index("users", ["email"], {:name=>"index_users_on_email", :unique=>true})

   -> 0.1280s
-- initialize_schema_migrations_table()
   -> 0.0010s
-- assume_migrated_upto_version(20120419034627, ["c:/sample_app/db/migrate
"])
   -> 0.0040s

どうすれば解決できますか?

編集私はチュートリアルに従っていましたが、データベースからすべてのデータを安全に削除するために上記のコマンドを実行するように指示されています。また、管理者アカウントも使用しています。

4

5 に答える 5

41

実行すると、db:reset実行中db:dropでありdb:setup、順番に実行されます。エラーメッセージdb/development.sqliteは、 を削除できなかったことを示しています。

Windows を使用している場合は、Rails サーバーとコンソールを停止する必要があるかもしれません。それ以外の場合は、ファイルの削除を妨げている原因を突き止めてください。許可の問題である可能性があります。再起動すると問題が解決する場合もあります。

于 2012-04-24T04:29:36.620 に答える
1

私はこれが古い投稿であることを知っていますが、私はちょうどこの問題 (Windows での sqlite3 の問題の続き) を抱えていました。上記の htanta コマンドを順番に実行します。 1. bundle exec rake db:drop 2. bundle exec rake db:create 3. bundle exec rake db:migrate

とにかく db:reset がこれらのコマンドだけである場合、なぜそれが機能しないのかわかりませんが、個々のコマンドは機能しますか?

于 2013-08-09T01:51:28.683 に答える
0

もう 1 つの考えられる答えは、データベース ファイルを開いていることです。これらのファイルを閉じてサーバーを停止すると、機能するはずです。

于 2015-02-09T09:55:26.990 に答える