$ 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
どうすれば解決できますか?
編集チュートリアルに従っていたところ、データベースからすべてのデータを安全に削除するために上記のコマンドを実行するように指示されました。また、管理者アカウントも使用しています。
私はこれが古い投稿であることを知っていますが、私はこの問題を抱えていました(Windowsでsqlite3の問題が続いています)、再起動、コマンドラインのシャットダウン、サーバーの停止が機能しなかったときに、実際にそれぞれを実行することで問題を解決できました上記のコマンドのhtantaを順番に:1。bundleexec rake db:drop 2. bundle exec rake db:create 3. bundle exec rake db:migrate
とにかくdb:resetがこれらのコマンドだけである場合、なぜそれが機能しないのか理解できませんが、個々のコマンドは機能しますか?
同じ問題を解決しようとしています。 Rails Windows上のサーバーは役に立ちませんでしたが、環境全体を再起動することでうまくいきました。bundleexecrake db:resetが実行されましたが、それ以前にサーバーを起動しないでください。同じエラーを呼び出します。続行します。
$ bundle exec rake db:reset
$ bundle exec rake db:populate
$ bundle exec rake test:prepare
その後、Railsサーバーを起動します。
データベース全体をドロップするには、rake db:setupを指定するだけで、データベースがドロップされて再度作成されます。
もう1つの考えられる答えは、データベースファイルを開いていることです。それらのファイルを閉じてサーバーを停止すると、機能するはずです。