我想重置rails 5项目的数据库,但rails db:reset
命令无效。
errormessage的:
Permission denied @ unlink_internal - C:/sites5/dawnrebirth/db/development.sqlite3
Couldn't drop database 'db/development.sqlite3'
rails aborted!
Errno::EACCES: Permission denied @ unlink_internal - C:/sites5/dawnrebirth/db/development.sqlite3
bin/rails:4:in `require'
bin/rails:4:in `<main>'
Tasks: TOP => db:drop:_unsafe
(See full trace by running task with --trace)
答案 0 :(得分:14)
通常当rake db:reset
没有运行或为我工作时,我只需删除development.sqlite3和schema.rb文件,然后重新运行rake db:migrate
命令重新生成这两个文件。但请注意不要在生产环境中尝试这一点。
答案 1 :(得分:1)
看起来rails试图删除该文件但没有成功。 请检查以下内容:
rake db:reset
之前终止应用程序。rake db:reset
很有可能成功运行。答案 2 :(得分:1)
当您执行 rake db:reset 时,它会按顺序运行db:drop和db:setup。
1.也许你需要停止你的Rails服务器和控制台。
2.重启也可以解决问题。
答案 3 :(得分:1)
我被告知要为rails 5添加输入作为答案,所以请求...
首先,停止rails服务器。
其次,运行这3个命令......
rails db:drop
rails db:schema:load
rails db:reset
我讨厌挖掘文件,所以这更容易和对我来说比删除一些文件更快。警告:无论您是否使用我的修复程序 - 始终每天在某处备份您的架构(例如使用repo系统...... github / bitbucket)。
我认为'rake'可用于代替导轨5之前版本的导轨,但尚未测试回导轨3或2。
正如@ govind-shaw所说......不管怎样,你必须停止rails服务器&amp;再次启动它。
答案 4 :(得分:1)
尝试rails db:drop:_unsafe
参见https://github.com/rails/rails/issues/31589