$ bundle exec rake db:reset command raising couldn

2019-03-12 15:37发布

问题:

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