【问题标题】:Rake db:migrate SQLite3::IOException: disk I/O errorRake db:migrate SQLite3::IOException: 磁盘 I/O 错误
【发布时间】:2015-07-21 01:42:18
【问题描述】:

我做了 installfest 项目设置:

http://installfest.railsbridge.org/installfest/create_a_rails_app
并在执行rake db:migrate 时出现此错误。

我尝试过重新安装 rails 和 ruby​​,但没有成功。

使用:

  • Ruby 2.2.1
  • Rails 4.2.1
  • Ubuntu 14.04
  • Ubuntu 在 Windows 8.1 主机上设置了 vagrant (VM)

    vagrant@vagrant-ubuntu-trusty-64:/vagrant/odin/test_app$ rake db:migrate --trace

** 调用 db:migrate (first_time) ** 调用环境(first_time) ** 执行环境 ** 调用 db:load_config (first_time) ** 执行 db:load_config ** 执行数据库:迁移 耙中止! ActiveRecord::StatementInvalid: SQLite3::IOException: 磁盘 I/O 错误:SELECT 名称 来自 sqlite_master WHERE (type = 'table' OR type = 'view') AND NOT name = 'sqlite_sequence' AND 名称 = "schema_migrations" /home/vagrant/.rvm/gems/ruby-2.2.1/gems/sqlite3-1.3.10/lib/sqlite3/database.rb:91:in initialize' /home/vagrant/.rvm/gems/ruby-2.2.1/gems/sqlite3-1.3.10/lib/sqlite3/database.rb:91:in new' /home/vagrant/.rvm/gems/ruby-2.2.1/gems/sqlite3-1.3.10/lib/sqlite3/database.rb:91:in prepare' /home/vagrant/.rvm/gems/ruby-2.2.1/gems/activerecord-4.2.1/lib/active_record/connection_adapters/sqlite3_adapter.rb:296:inblock in exec_query' /home/vagrant/.rvm/gems/ruby-2.2.1/gems/activerecord-4.2.1/lib/active_record/connection_adapters/abstract_adapter.rb:473:in block in log' /home/vagrant/.rvm/gems/ruby-2.2.1/gems/activesupport-4.2.1/lib/active_support/notifications/instrumenter.rb:20:in instrument' /home/vagrant/.rvm/gems/ruby-2.2.1/gems/activerecord-4.2.1/lib/active_record/connection_adapter/abstract_adapter.rb:467:in log' /home/vagrant/.rvm/gems/ruby-2.2.1/gems/activerecord-4.2.1/lib/active_record/connection_adapters/sqlite3_adapter.rb:293:inexec_query' /home/vagrant/.rvm/gems/ruby-2.2.1/gems/activerecord-4.2.1/lib/active_record/connection_adapters/sqlite3_adapter.rb:374:in tables' /home/vagrant/.rvm/gems/ruby-2.2.1/gems/activerecord-4.2.1/lib/active_record/connection_adapters/sqlite3_adapter.rb:380:intable_exists? /home/vagrant/.rvm/gems/ruby-2.2.1/gems/activerecord-4.2.1/lib/active_record/schema_migration.rb:21:in table_exists?' /home/vagrant/.rvm/gems/ruby-2.2.1/gems/activerecord-4.2.1/lib/active_record/schema_migration.rb:25:in create_table' /home/vagrant/.rvm/gems/ruby-2.2.1/gems/activerecord-4.2.1/lib/active_record/connection_adapters/abstract/schema_statements.rb:805:in initialize_schema_migrations_table' /home/vagrant/.rvm/gems/ruby-2.2.1/gems/activerecord-4.2.1/lib/active_record/migration.rb:922:in initialize' /home/vagrant/.rvm/gems/ruby-2.2.1/gems/activerecord-4.2.1/lib/active_record/migration.rb:820:in new' /home/vagrant/.rvm/gems/ruby-2.2.1/gems/activerecord-4.2.1/lib/active_record/migration.rb:820:in up' /home/vagrant/.rvm/gems/ruby-2.2.1/gems/activerecord-4.2.1/lib/active_record/migration.rb:798:in migrate' /home/vagrant/.rvm/gems/ruby-2.2.1/gems/activerecord-4.2.1/lib/active_record/tasks/database_tasks.rb:137:in migrate' /home/vagrant/.rvm/gems/ruby-2.2.1/gems/activerecord-4.2.1/lib/active_record/railties/databases.rake:44:in block (2 levels) in <top (required)>' /home/vagrant/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/rake/task.rb:240:in call' /home/vagrant/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/rake/task.rb:240:in block in execute' /home/vagrant/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/rake/task.rb:235:in each' /home/vagrant/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/rake/task.rb:235:in execute' /home/vagrant/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/rake/task.rb:179:in block in invoke_with_call_chain' /home/vagrant/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/monitor.rb:211:in mon_synchronize' /home/vagrant/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/rake/task.rb:172:in invoke_with_call_chain' /home/vagrant/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/rake/task.rb:165:in invoke' /home/vagrant/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/rake/application.rb:150:in invoke_task' /home/vagrant/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/rake/application.rb:106:in block (2 levels) in top_level' /home/vagrant/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/rake/application.rb:106:in each' /home/vagrant/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/rake/application.rb:106:in block in top_level' /home/vagrant/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/rake/application.rb:115:in run_with_threads' /home/vagrant/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/rake/application.rb:100:in top_level' /home/vagrant/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/rake/application.rb:78:in block 正在运行' /home/vagrant/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/rake/application.rb:176:in standard_exception_handling' /home/vagrant/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/rake/application.rb:75:in run' /home/vagrant/.rvm/rubies/ruby-2.2.1/bin/rake:33:in <main>' SQLite3::IOException: disk I/O error /home/vagrant/.rvm/gems/ruby-2.2.1/gems/sqlite3-1.3.10/lib/sqlite3/database.rb:91:in initialize' /home/vagrant/.rvm/gems/ruby-2.2.1/gems/sqlite3-1.3.10/lib/sqlite3/database.rb:91:in new' /home/vagrant/.rvm/gems/ruby-2.2.1/gems/sqlite3-1.3.10/lib/sqlite3/database.rb:91:in prepare' /home/vagrant/.rvm/gems/ruby-2.2.1/gems/activerecord-4.2.1/lib/active_record/connection_adapter/sqlite3_adapter.rb:296:in block in exec_query' /home/vagrant/.rvm/gems/ruby-2.2.1/gems/activerecord-4.2.1/lib/active_record/connection_adapters/abstract_adapter.rb:473:inblock in log' /home/vagrant/.rvm/gems/ruby-2.2.1/gems/activesupport-4.2.1/lib/active_support/notifications/instrumenter.rb:20:in instrument' /home/vagrant/.rvm/gems/ruby-2.2.1/gems/activerecord-4.2.1/lib/active_record/connection_adapters/abstract_adapter.rb:467:inlog' /home/vagrant/.rvm/gems/ruby-2.2.1/gems/activerecord-4.2.1/lib/active_record/connection_adapter/sqlite3_adapter.rb:293:in exec_query' /home/vagrant/.rvm/gems/ruby-2.2.1/gems/activerecord-4.2.1/lib/active_record/connection_adapters/sqlite3_adapter.rb:374:intables' /home/vagrant/.rvm/gems/ruby-2.2.1/gems/activerecord-4.2.1/lib/active_record/connection_adapter/sqlite3_adapter.rb:380:in table_exists?' /home/vagrant/.rvm/gems/ruby-2.2.1/gems/activerecord-4.2.1/lib/active_record/schema_migration.rb:21:in table_exists? /home/vagrant/.rvm/gems/ruby-2.2.1/gems/activerecord-4.2.1/lib/active_record/schema_migration.rb:25:in create_table' /home/vagrant/.rvm/gems/ruby-2.2.1/gems/activerecord-4.2.1/lib/active_record/connection_adapters/abstract/schema_statements.rb:805:in initialize_schema_migrations_table' /home/vagrant/.rvm/gems/ruby-2.2.1/gems/activerecord-4.2.1/lib/active_record/migration.rb:922:in initialize' /home/vagrant/.rvm/gems/ruby-2.2.1/gems/activerecord-4.2.1/lib/active_record/migration.rb:820:in new' /home/vagrant/.rvm/gems/ruby-2.2.1/gems/activerecord-4.2.1/lib/active_record/migration.rb:820:in up' /home/vagrant/.rvm/gems/ruby-2.2.1/gems/activerecord-4.2.1/lib/active_record/migration.rb:798:in migrate' /home/vagrant/.rvm/gems/ruby-2.2.1/gems/activerecord-4.2.1/lib/active_record/tasks/database_tasks.rb:137:in migrate' /home/vagrant/.rvm/gems/ruby-2.2.1/gems/activerecord-4.2.1/lib/active_record/railties/databases.rake:44:in block(2 级)在 ' /home/vagrant/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/rake/task.rb:240:in call' /home/vagrant/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/rake/task.rb:240:in block 正在执行' /home/vagrant/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/rake/task.rb:235:in each' /home/vagrant/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/rake/task.rb:235:in 执行' /home/vagrant/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/rake/task.rb:179:in block in invoke_with_call_chain' /home/vagrant/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/monitor.rb:211:in mon_synchronize' /home/vagrant/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/rake/task.rb:172:in invoke_with_call_chain' /home/vagrant/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/rake/task.rb:165:in invoke' /home/vagrant/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/rake/application.rb:150:in invoke_task' /home/vagrant/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/rake/application.rb:106:in block (2 个级别) in top_level' /home/vagrant/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/rake/application.rb:106:in each' /home/vagrant/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/rake/application.rb:106:in block in top_level' /home/vagrant/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/rake/application.rb:115:in run_with_threads' /home/vagrant/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/rake/application.rb:100:in top_level' /home/vagrant/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/rake/application.rb:78:in block in run' /home/vagrant/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/rake/application.rb:176:in standard_exception_handling' /home/vagrant/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/rake/application.rb:75:in run' /home/vagrant/.rvm/rubies/ruby-2.2.1/bin/rake:33:in' 任务:TOP => db:migrate

【问题讨论】:

    标签: ruby-on-rails ruby rake


    【解决方案1】:

    我通过更改 NFS 共享文件夹挂载选项解决了这个问题!

    mount_options:['nolock,vers=3,udp,noatime,actimeo=1']
    

    现在 rake db:migrate 运行良好!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-12
      • 1970-01-01
      相关资源
      最近更新 更多