Rails db:migrate:reset生成Errno :: EACCES权限被拒绝@unlink_internal

Cha*_* Mx 4 ruby sqlite rubygems ruby-on-rails railstutorial.org

我正在关注Michael Hartl的Rails教程,并且在某些时候我们要运行
rails db:migrate:reset
但是每次我都尝试这样做时,我面临着关于文件的权限被拒绝错误

development.sqlite3

我尝试过以下解决方案:
1. close all programs suspected of using said file and retry task
2. terminate rails console, server, editor and retry task
3. shut/restart pc and executing the task upon restart
4. executing rails db:drop

所有这些都无法允许命令运行.唯一可行的解​​决方案是手动删除文件并运行rails db:migrate

我在跑步

Rails 5.0.0.1
Ruby 2.2.5p319
Sqlite3 3.14.1
Windows 10 Professional

我的堆栈跟踪是:

**调用db:migrate:reset(first_time)
**调用db:drop(first_time)
**调用db:load_config(first_time)
**执行db:load_config
**调用db:check_protected_environments(first_time )
**调用环境(first_time )
**执行环境
**调用db:load_config
**执行db:check_protected_environments**执行db:
drop
**调用db:drop:_unsafe(first_time)
**调用db:load_config
**执行db:drop:_unsafe
权限被拒绝@ unlink_internal - %path%/ sample_app/db/development.sqlite3无法删除数据库'db/development.sqlite3'rails
aborted!
Errno :: EACCES:权限被拒绝@ unlink_internal - %path%/ sample_app/db/development.sqlite3
C:/Ruby22-x64/lib/ruby/2.2.0/fileutils.rb:1450:在remove_file 中的块' C:/ Ruby22-x64/lib/ruby​​/2.2.0/fileutils.rb:1458:在remove_file中: C:/Ruby22-x64/lib/ruby/2.2.0/fileutils.rb:793:在rm 中的块中 :C:/ Ruby22-X64/LIB /红宝石/ 2.2.0/fileutils.rb:570:在RM" C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activerecord-5.0.0.1/lib/active_record/任务/ sqlite_database_tasks.rb:22:在降" C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activerecord-5.0.0.1/lib/active_record/tasks/database_tasks.rb:152:在块in each_current_configuration'C :/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activerecord-5.0.0.1/lib/active_record/tasks/database_tasks.rb:291:in each_current_configuration'C :/ Ruby22-x64/LIB /红宝石/宝石/ 2.2.0 /宝石/了activerecord-5.0.0.1/LIB/active_record /任务/ database_tasks.rb:151:在在'块(2级) C:/ Ruby22-X64/LIB /红宝石/宝石执行' C:/ Ruby22-x64/lib/ruby​​/gems /中的/2.2.0/gems/rake-11.2.2/lib/rake/task.rb:248:in 块 2.2.0/gems/rake-11.2.2/lib/rake/task.rb:243:执行' C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/rake-11.2.2/ lib/rake/task.rb:187:在mon_synchronize'C :/Ruby22-x64/lib/ruby/gems/2.2.0/gems/rake-11.2.2/lib/rake/task.rb:180:在调用中' C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activerecord-5.0.0.1/lib/active_record/railties/databases.rake:38:在呼叫' C:/ Ruby22-X64/LIB /红宝石/宝石/ 2.2.0 /宝石/耙11.2.2/LIB /耙/ task.rb:248:在每个" C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/rake- 11.2.2/lib/rake/task.rb:243:在invoke_with_call_chain 中的块' C:/Ruby22-x64/lib/ruby/2.2.0/monitor.rb:211:在invoke_with_call_chain'C :/ Ruby22-x64/LIB /红宝石/宝石/ 2.2.0 /宝石/耙11.2.2/LIB /耙/ task.rb:209:在每个" C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/ rake-11.2.2/lib/rake/task.rb:207:在invoke_with_call_chain 中的块' C:/Ruby22-x64/lib/ruby/2.2.0/monitor.rb:211:在invoke_with_call_chain'C :/ Ruby22- x64/lib/ruby​​/gems/2.2.0/gems/rake-11.2.2/lib/rake/task.rb:173:in invoke_task'C :/Ruby22-x64/lib/ruby/gems/2.2.0/宝石/耙11.2.2/LIB /耙/ application.rb中:108:在每个" C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/rake-11.2.2/lib/rake/application.rb:108:在run_with_threads'C :/Ruby22-x64/lib/ruby/gems/2.2.0/gems/rake-11.2.2/lib/rake/application.rb:102:在run_rake_task 中的块' C:/ Ruby22-x64/LIB /红宝石/宝石/ 2.2.0 /宝石/耙11.2.2/LIB /耙/ application.rb中:178:在run_rake_task" C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/ railties-5.0.0.1/lib/rails/commands/commands_tasks.rb:51:在' bin/rails:4:in ' 任务:TOP => db:drop:_unsafe unlink'
C:/Ruby22-x64/lib/ruby/2.2.0/fileutils.rb:1450:in

platform_support'
C:/Ruby22-x64/lib/ruby/2.2.0/fileutils.rb:1449:in

remove_file'
C:/Ruby22-x64/lib/ruby/2.2.0/fileutils.rb:571:in

each'
C:/Ruby22-x64/lib/ruby/2.2.0/fileutils.rb:570:in

drop'
C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activerecord-5.0.0.1/lib/active_record/tasks/database_tasks.rb:136:in

block in drop_current'
C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activerecord-5.0.0.1/lib/active_record/tasks/database_tasks.rb:292:in

each'
C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activerecord-5.0.0.1/lib/active_record/tasks/database_tasks.rb:291:in

drop_current'
C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activerecord-5.0.0.1/lib/active_record/railties/databases.rake:42:in

call'
C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/rake-11.2.2/lib/rake/task.rb:248:in

each'
C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/rake-11.2.2/lib/rake/task.rb:243:in

block in invoke_with_call_chain'
C:/Ruby22-x64/lib/ruby/2.2.0/monitor.rb:211:in

invoke_with_call_chain'
C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/rake-11.2.2/lib/rake/task.rb:173:in

block (2 levels) in <top (required)>'
C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/rake-11.2.2/lib/rake/task.rb:248:in

block in execute'
C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/rake-11.2.2/lib/rake/task.rb:243:in

execute'
C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/rake-11.2.2/lib/rake/task.rb:187:in

mon_synchronize'
C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/rake-11.2.2/lib/rake/task.rb:180:in

block in invoke_prerequisites'
C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/rake-11.2.2/lib/rake/task.rb:207:in

invoke_prerequisites'
C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/rake-11.2.2/lib/rake/task.rb:186:in

mon_synchronize'
C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/rake-11.2.2/lib/rake/task.rb:180:in

invoke'
C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/rake-11.2.2/lib/rake/application.rb:152:in

block (2 levels) in top_level'
C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/rake-11.2.2/lib/rake/application.rb:108:in

block in top_level'
C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/rake-11.2.2/lib/rake/application.rb:117:in

top_level'
C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/railties-5.0.0.1/lib/rails/commands/rake_proxy.rb:13:in

standard_exception_handling'
C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/railties-5.0.0.1/lib/rails/commands/rake_proxy.rb:10:in

run_command!'
C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/railties-5.0.0.1/lib/rails/commands.rb:18:in

require'
bin/rails:4:in

如何删除此错误并阻止它用于将来的项目?

Isa*_*uza 9

我使用Windows 10 Pro获得相同的错误 红宝石2.4.1 | Rails 5.1.4.我使用了:

rake db:drop:_unsafe
rake db:create
rake db:migrate
Run Code Online (Sandbox Code Playgroud)