$ bundle exec rake db:reset command raising couldn't drop db/development.sqlite3

十年热恋 提交于 2019-12-03 08:37:46

问题


I tried to run $ bundle exec rake db:reset and found the following on console

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

How can I solve it?

Edit I was following a tutorial and it tells me to run the above command to delete all the data from the database safely. And I am also using admin account.


回答1:


When you do db:reset, it's running db:drop and db:setup in sequence. Your error message indicates that db/development.sqlite couldn't be deleted.

If you're on Windows, maybe you need to stop your Rails server and console. Otherwise, figure out what's preventing the file from being deleted. It could be permission problem. A reboot may solve the problem too.




回答2:


I know this is an old post, but I just had this problem (continued sqlite3 issues with Windows), and while rebooting, shutting the command line, and stopping the server didn't work, I did manage to solve it by actually running each of the commands htanta mentioned above sequentially: 1. bundle exec rake db:drop 2. bundle exec rake db:create 3. bundle exec rake db:migrate

If db:reset is only these commands anyway, I don't understand why it doesn't work but the individual commands do?




回答3:


Have been trying to resolve the same issue. Stopping Rails Server on Windows didn't help, but restarting the whole environment did the trick, bundle exec rake db:reset went through, but be sure not to start your server before that as it will call the same error. Continue with

$ bundle exec rake db:reset
$ bundle exec rake db:populate
$ bundle exec rake test:prepare

and start Rails Server after that.




回答4:


Another possible answer is that you have a database file open. Close those files and stop your server, and it should work.




回答5:


For Dropping entire database just give rake db:setup it drops and again creates the database for you



来源:https://stackoverflow.com/questions/10290557/bundle-exec-rake-dbreset-command-raising-couldnt-drop-db-development-sqlite3

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!