首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Rails db:migrate:reset producing::EACCES权限被拒绝@unlink_internal

Rails db:migrate:reset producing::EACCES权限被拒绝@unlink_internal
EN

Stack Overflow用户
提问于 2016-09-09 23:21:15
回答 2查看 5.5K关注 0票数 5

我正在遵循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专业版

我的堆栈跟踪是:

** Invoke 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已中止!

错误::EACCES:权限被拒绝@ unlink_internal - %path%/sample_app/db/development.sqlite3

C:/Ruby22-x64/lib/ruby/2.2.0/fileutils.rb:1450:in unlink'

Remove_file中的C:/Ruby22-x64/lib/ruby/2.2.0/fileutils.rb:1450:in

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

C:/Ruby22-x64/lib/ruby/2.2.0/fileutils.rb:1449:inremove_file的

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

rm中的C:/Ruby22-x64/lib/ruby/2.2.0/fileutils.rb:571:in

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

C:/Ruby22-x64/lib/ruby/2.2.0/fileutils.rb:570:inrm‘

C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activerecord-5.0.0.1/lib/active_record/tasks/sqlite_database_tasks.rb:22: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丢弃‘

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

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:292:in

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'

C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activerecord-5.0.0.1/lib/active_record/tasks/database_tasks.rb:291:ineach_current_configuration的

C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activerecord-5.0.0.1/lib/active_record/tasks/database_tasks.rb:151: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块(2层)

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

execute‘中的C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/rake-11.2.2/lib/rake/task.rb:248:in

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

C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/rake-11.2.2/lib/rake/task.rb:243:in执行‘

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

C:/Ruby22-x64/lib/ruby/2.2.0/monitor.rb:211:inmon_synchronize的

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

C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/rake-11.2.2/lib/rake/task.rb:173:ininvoke‘

C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activerecord-5.0.0.1/lib/active_record/railties/databases.rake:38: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调用‘

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:ineach‘

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

Invoke_with_call_chain中的C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/rake-11.2.2/lib/rake/task.rb:187:in

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

C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/rake-11.2.2/lib/rake/task.rb:180:ininvoke_with_call_chain的

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

C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/rake-11.2.2/lib/rake/task.rb:207:ineach‘

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

Invoke_with_call_chain中的C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/rake-11.2.2/lib/rake/task.rb:186:in

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

C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/rake-11.2.2/lib/rake/task.rb:180:ininvoke_with_call_chain的

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

C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/rake-11.2.2/lib/rake/application.rb:152:ininvoke_task的

C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/rake-11.2.2/lib/rake/application.rb:108: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:ineach‘

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:inrun_with_threads的

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

Run_rake_task中的C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/railties-5.0.0.1/lib/rails/commands/rake_proxy.rb:13:in

C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/rake-11.2.2/lib/rake/application.rb:178: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:inrun_rake_task的

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

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

bin/rails:4:在require'

bin/rails:4:in

任务: TOP => db:drop:_unsafe

如何删除此错误并防止在将来的项目中出现此错误?

EN

回答 2

Stack Overflow用户

发布于 2017-09-16 20:13:02

我在使用Windows10Pro| ruby 2.4.1 | Rails 5.1.4时也遇到了同样的错误。我用以下方法解决了这个问题:

代码语言:javascript
复制
rake db:drop:_unsafe
rake db:create
rake db:migrate
票数 12
EN

Stack Overflow用户

发布于 2019-01-08 21:39:53

按照Windows10,Ruby 2.6.0,Rails 5.2.2这本书中的步骤执行此命令时,我也遇到了同样的问题。我还将DB Browser for SQLite与该数据库一起使用。

在我关闭了浏览器、rails服务器以及所有其他仍在使用该数据库的服务器之后,我仍然收到了这个错误,即使是在重启之后。

为了解决这个问题,我不得不通过Windows手动删除迁移文件,然后执行rails db: development.sqlite3

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39414892

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档