rails 5 db:reset不工作
我想重置rails 5项目的数据库,但rails db:reset
命令无效。
错误信息:
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 `' Tasks: TOP => db:drop:_unsafe (See full trace by running task with --trace)
通常当rake db:reset
不运行或为我工作时,我只需删除development.sqlite3和schema.rb文件,然后重新运行rake db:migrate
命令重新生成这两个文件。 但请注意不要在生产环境中尝试这个。
看起来rails试图删除该文件但没有成功。 检查以下内容:
- 您的应用是否正在运行并连接到数据库文件? – 在执行
rake db:reset
之前终止应用程序。 - 是连接到数据库文件的其他一些进程(例如数据库查看器)? – 与上述相同,在复位前终止它。
- 在最坏的情况下(你无法确定阻塞文件的是什么),
rake db:reset
在重启后立即rake db:reset
很有可能成功运行。
当您执行rake db:reset时 ,它按顺序运行db:drop和db:setup。
1.也许你需要停止你的Rails服务器和控制台。
2.重启也可以解决问题。
我被告知要添加我对rails 5的输入作为答案,所以请求…
首先,停止rails服务器。
其次,运行这3个命令……
rails db:drop rails db:schema:load rails db:reset
我讨厌挖掘文件,所以这比删除一些文件更容易,更快。 警告:无论您是否使用我的修复程序 – 始终每天在某处备份您的架构(例如使用repo系统… github / bitbucket)。
我相信’rake’可用于代替导轨5之前版本的导轨,但尚未测试回导轨3或2。
正如@ govind-shaw所说……不管怎样,你必须停止rails服务器并再次启动它。