Errno :: ETXTBSY:文本文件busy @ unlink_internal

时间:2014-12-08 14:08:28

标签: ruby-on-rails vagrant virtualbox

错误:

Errno :: ETXTBSY:文本文件繁忙@ unlink_internal - /home/vagrant/shared/sample_app/db/test.sqlite3 /home/vagrant/shared/sample_app/test/test_helper.rb:3:in <top (required)>' /home/vagrant/shared/sample_app/test/helpers/static_pages_helper_test.rb:1:in' 任务:TOP =&gt; test:run =&gt;测试:单位 (通过使用--trace运行任务查看完整跟踪)

2 个答案:

答案 0 :(得分:4)

解决方法:

该错误与Vagrant(或VirtualBox)自定义共享文件夹有关。我无法弄清楚如何解决它,但有一个解决方法。我没有使用 vagrantfile 中定义的流浪者自定义共享文件夹(〜/ shared / sample_app),而是将app文件夹移动到VM根目录中的标准共享文件夹<强>(/流浪)即可。现在我仍然在我的主机中获得文件同步,问题就消失了。


更新1

今天达成了另一个结论。 每次执行bundle exec rake db:migraterails generate migration时,错误都会返回。

另一种解决方法
1 - 删除 test.sqlite3 文件 2 - 复制development.sqlite3文件
3 - 粘贴并将名称更改为test.sqlite3

* - 刚刚迁移进行测试,这似乎是一个永久的解决方案。

答案 1 :(得分:4)

将数据库文件移到vagrant share之外,例如移动到/ tmp。

编辑database.yml:

development:
  <<: *default
  database: /tmp/project/development.sqlite3

test:
  <<: *default
  database: /tmp/project/test.sqlite3