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:dropdb:setupdb/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 回答
1

一直在尝试解决同样的问题。在 Windows 上停止 Rails Server 并没有帮助,但是重新启动整个环境就可以了,bundle exec rake db:reset 完成了,但请确保在此之前不要启动服务器,因为它会调用相同的错误。继续

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

然后启动 Rails Server。

于 2014-04-13T20:57:45.387 回答
0

另一个可能的答案是您打开了一个数据库文件。关闭这些文件并停止您的服务器,它应该可以工作。

于 2015-02-09T09:55:26.990 回答
-1

对于删除整个数据库,只需提供 rake db:setup 它会删除并再次为您创建数据库

于 2015-02-18T06:47:08.173 回答