我正在关注rails教程视频,但我无法弄清楚db:test:prepare
命令实际上做了什么。有人可以提供解释吗?
答案 0 :(得分:111)
上面的rake db:migrate会运行任何挂起的迁移 开发环境和更新db / schema.rb。耙子 db:test:load从当前重新创建测试数据库 DB / schema.rb。在随后的尝试中,首先运行是个好主意 db:test:prepare,因为它首先检查挂起的迁移并发出警告 你适当的。
- http://guides.rubyonrails.org/testing.html
基本上它处理克隆数据库,因此您不必运行针对test的迁移来更新测试数据库。
答案 1 :(得分:38)
具体而言,rake db:test:prepare
将执行以下操作:
也就是说,它将查看您的db/schema.rb
文件,以确定项目中是否存在尚未运行的任何迁移。假设没有未完成的迁移,它将清空数据库并根据db/schema.rb
文件的内容重新加载它。
答案 2 :(得分:2)