【问题标题】:Rails database migration errorRails 数据库迁移错误
【发布时间】:2016-12-25 10:03:47
【问题描述】:

我想开始使用 ror,但这个问题似乎无法解决。我知道这个数据库错误有很多关于它的线程,但似乎没有一个解决方案可以解决。我现在整个下午都在论坛上搜索,没有成功。

我基本上只是执行教科书上的第一个任务,如下所示: 我使用

创建了一个新的 RoR 项目(Windows 10、SQLite3)
rails new depot

然后我在这个项目中创建一个脚手架,代码如下:

rails generate scaffold Product title:string description:text image_url:string price:decimal

当我测试应用程序时,我得到了 db:migrate 错误。我尝试了rake db:migratedb:rollbackdb:drop,然后是db:create,我检查了迁移文件是否有错误,但似乎没有任何效果。

我认为解决方案应该很简单,因为应用程序在这种状态下应该尽可能简单,但我就是无法理解它出现的秘密。

正在等待迁移。要解决此问题,请运行:

    bin/rails db:migrate RAILS_ENV=test

    from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activerecord-5.0.1/lib/active_record/migration.rb:586:in `load_schema_if_pending!'
    from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activerecord-5.0.1/lib/active_record/migration.rb:592:in `block in maintain_test_schema!'
    from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activerecord-5.0.1/lib/active_record/migration.rb:823:in `suppress_messages'
    from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activerecord-5.0.1/lib/active_record/migration.rb:597:in `method_missing'
    from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activerecord-5.0.1/lib/active_record/migration.rb:592:in `maintain_test_schema!'
    from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/railties-5.0.1/lib/rails/test_help.rb:15:in `<top (required)>'
    from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:293:in `require'
    from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:293:in `block in require'
    from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:259:in `load_dependency'
    from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:293:in `require'
    from C:/Users/Flori/Desktop/bsp/test/test_helper.rb:3:in `<top (required)>'
    from C:/Users/Flori/Desktop/bsp/test/controllers/products_controller_test.rb:1:in `require'
    from C:/Users/Flori/Desktop/bsp/test/controllers/products_controller_test.rb:1:in `<top (required)>'
    from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/railties-5.0.1/lib/rails/test_unit/test_requirer.rb:11:in `require'
    from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/railties-5.0.1/lib/rails/test_unit/test_requirer.rb:11:in `block in require_files'
    from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/railties-5.0.1/lib/rails/test_unit/test_requirer.rb:10:in `each'
    from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/railties-5.0.1/lib/rails/test_unit/test_requirer.rb:10:in `require_files'
    from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/railties-5.0.1/lib/rails/test_unit/minitest_plugin.rb:86:in `plugin_rails_init'
    from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/minitest-5.10.1/lib/minitest.rb:80:in `block in init_plugins'
    from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/minitest-5.10.1/lib/minitest.rb:78:in `each'
    from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/minitest-5.10.1/lib/minitest.rb:78:in `init_plugins'
    from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/minitest-5.10.1/lib/minitest.rb:129:in `run'
    from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/railties-5.0.1/lib/rails/test_unit/minitest_plugin.rb:73:in `run'
    from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/minitest-5.10.1/lib/minitest.rb:62:in `block in autorun'

【问题讨论】:

  • 运行rake db:migrate时遇到什么错误?
  • 总是,总是在这类问题中包含堆栈跟踪。
  • 我在运行 rake db:migrate 时没有收到任何错误。我认为迁移成功了。
  • 可能听起来很傻,但是你的 gemfile 中有 sqlite gem 吗?

标签: ruby-on-rails database windows sqlite3-ruby


【解决方案1】:

切换你的服务器,然后运行

rake db:drop db:create db:migrate 

这一定能解决你的问题

【讨论】:

    猜你喜欢
    • 2012-08-24
    • 1970-01-01
    • 1970-01-01
    • 2015-06-08
    • 2015-04-06
    • 1970-01-01
    • 2018-10-21
    • 2014-05-05
    相关资源
    最近更新 更多