21

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.

AZ.
  • 7,333
  • 6
  • 44
  • 62
WowBow
  • 7,137
  • 17
  • 65
  • 103
  • Check this out. This will be helpful http://stackoverflow.com/questions/4116067/rails-how-to-recreate-the-database – naren Apr 24 '12 at 02:06
  • Thanks for the information but, they are talking about the commands but I have the command which is outputting the above error message – WowBow Apr 24 '12 at 02:47

5 Answers5

42

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.

htanata
  • 36,666
  • 8
  • 50
  • 57
1

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?

grist
  • 103
  • 1
  • 9
1

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.

Michael L
  • 11
  • 1
0

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

-1

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