所以根据this link,一个是快捷包装(所以我猜他们是相同的)。
当我运行bundle exec rake db:test:prepare
时,我收到此错误:
Don't know how to build task 'test:prepare'
/Users/aj/.rvm/gems/ruby-2.0.0-p451@railstutorial_rails_4_0/bin/ruby_executable_hooks:15:in `eval'
/Users/aj/.rvm/gems/ruby-2.0.0-p451@railstutorial_rails_4_0/bin/ruby_executable_hooks:15:in `<main>'
...但是当我跑bundle exec rake db:test:prepare
时,我收到了这个警告:
WARNING: db:test:prepare is deprecated. The Rails test helper now maintains your test schema automatically, see the release notes for details.
有人能说清楚这个吗?
答案 0 :(得分:50)
在Rails 4.1+中,他们弃用db:test:使用该消息进行准备。你现在可以使用:
ActiveRecord::Migration.maintain_test_schema!
在spec_helper.rb中(如果您没有使用RSpec,则为类似文件)。这将自动使您的测试数据库与您的架构保持同步。由于这种“自动”方法,在大多数情况下不再需要db:test:prepare。
如果由于某种原因需要手动执行,您仍然可以使用
rake db:schema:load RAILS_ENV=test