rake db:test:prepare实际上做了什么?

ben*_*gem 121 ruby ruby-on-rails

我正在关注rails教程视频,我无法弄清楚db:test:prepare命令实际上做了什么.有人可以提供解释吗?

Ric*_*own 114

上面的rake db:migrate在开发环境上运行任何挂起的迁移并更新db/schema.rb.rake db:test:load从当前db/schema.rb重新创建测试数据库.在后续尝试中,首先运行db:test:prepare是一个好主意,因为它首先检查挂起的迁移并适当地发出警告.

- http://guides.rubyonrails.org/testing.html

基本上它处理克隆数据库,因此您不必运行针对test的迁移来更新测试数据库.

  • `rake db:test:prepare`现已弃用. (18认同)
  • 它回来了https://github.com/rails/rails/commit/5c4495538bb4e8808ce077f08ea6b809952daa44 (10认同)
  • 以上网址已经死了,这将是新的网址https://github.com/rails/rails/blob/4-1-stable/activerecord/CHANGELOG.md#rails-410-april-8-2014 (3认同)
  • @ Jngai1297不再! (3认同)
  • @Phillipp 再一次http://guides.rubyonrails.org/v5.0/testing.html#maintaining-the-test-database-schema (2认同)

Kev*_*ell 38

具体来说,rake db:test:prepare将执行以下操作:

  • 检查挂起的迁移,并且
  • 加载测试模式

也就是说,它将查找您的db/schema.rb文件以确定项目中是否存在尚未运行的任何迁移.假设没有未完成的迁移,它将清空数据库并根据db/schema.rb文件的内容重新加载它.