【发布时间】:2013-06-13 14:01:46
【问题描述】:
在 Rails 4.0.0.rc1、Ruby 2.0.0 上,运行迁移后,当我尝试通过 rspec 运行测试时看到以下错误:
/Users/peeja/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/gems/activerecord-4.0.0.rc1/lib/active_record/migration.rb:376:in `check_pending!':迁移待定;运行'rake db:迁移 RAILS_ENV=test' 来解决这个问题。 (ActiveRecord::PendingMigrationError)
这似乎不对。没有人迁移他们的测试数据库,是吗?他们db:test:prepare它,公平地说,我忘了这样做。所以我运行rake db:test:prepare 并再次运行我的rspec 命令......并看到同样的错误。
如果我真的rake db:migrate RAILS_ENV=test,错误确实消失了。
发生了什么事?这是 Rails 4 中的新功能吗?
【问题讨论】:
-
rake db:test:prepare有效吗? -
对我来说
rake db:test:prepare不起作用,即使schema.rb是最新的。只有迁移测试数据库有效。 -
在这里查看我的答案,希望对您有所帮助:stackoverflow.com/a/33054787/4902373
-
rake db:migrate RAILS_ENV=test为我解决了这个问题。 -
我通过在
RSpec.configure块之前添加ActiveRecord::Migration.maintain_test_schema!解决了这个问题rails_helper.rb文档:relishapp.com/rspec/rspec-rails/docs/…
标签: ruby-on-rails rails-migrations ruby-on-rails-4