$ bundle exec rake db:reset 命令提升无法删除 db/development.sqlite3

Posted

技术标签:

【中文标题】$ bundle exec rake db:reset 命令提升无法删除 db/development.sqlite3【英文标题】:$ bundle exec rake db:reset command raising couldn't drop db/development.sqlite3 【发布时间】:2012-05-04 15:44:09 【问题描述】:

我尝试运行 $ 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

我该如何解决?

编辑 我正在学习一个教程,它告诉我运行上述命令以安全地从数据库中删除所有数据。而且我也在使用管理员帐户。

【问题讨论】:

看看这个。这会很有帮助***.com/questions/4116067/… 感谢您的信息,但他们正在谈论命令,但我有输出上述错误消息的命令 【参考方案1】:

当您执行db:reset 时,它会依次运行db:dropdb:setup。您的error message 表示db/development.sqlite 无法删除。

如果您使用的是 Windows,也许您需要停止 Rails 服务器和控制台。否则,找出是什么阻止了文件被删除。可能是权限问题。重启也可以解决问题。

【讨论】:

我重新启动了所有使用 rails 资源的东西,现在一切都很好。 遇到了同样的问题,我只需要停止 rails 服务器。谢谢! 这个答案是正确的!我遇到了同样的问题,停止服务器一段时间使命令正常工作。【参考方案2】:

我知道这是一篇旧帖子,但我只是遇到了这个问题(Windows 的 sqlite3 问题继续),并且在重新启动、关闭命令行和停止服务器时不起作用,我确实设法通过实际上按顺序运行上面提到的每个命令 htanta: 1. 捆绑执行 rake db:drop 2. bundle exec rake db:create 3. bundle exec rake db:migrate

无论如何,如果 db:reset 只是这些命令,我​​不明白为什么它不起作用但个别命令起作用?

【讨论】:

见我上面的评论。尝试db:migrate:reset 运行所有这些命令。 谢谢你,@grist。在没有其他方法的情况下分解命令是有效的。【参考方案3】:

一直在尝试解决相同的问题。在 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。

【讨论】:

【参考方案4】:

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

【讨论】:

【参考方案5】:

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

【讨论】:

以上是关于$ bundle exec rake db:reset 命令提升无法删除 db/development.sqlite3的主要内容,如果未能解决你的问题,请参考以下文章

Rails--bundle exec rake db:migrate

bundle exec rake assets:预编译失败,出现“意外令牌”

在 bundle exec rake assets:precompile 后 OpsWorks 部署失败

$ bundle exec rake db:reset 命令提升无法删除 db/development.sqlite3

Github 操作工作流 PG::ConnectionBad:无法连接到服务器:运行 bundle exec rake 时没有这样的文件或目录

gitlab迁移版本不一致问题