Rake db: test: 准备到底做什么?

我正在跟踪 Rails 教程视频,但是我不知道 db:test:prepare命令实际上是做什么的。有人能解释一下吗?

80170 次浏览

上面的 rake db: shift 在 开发环境并更新 db/schema.rb. rake Load 从当前 在后续尝试中,最好首先运行 db/schema.rb Test: ready,因为它首先检查挂起的迁移并发出警告 适合你。

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

基本上,它处理克隆数据库,这样您就不必根据 test 运行迁移来更新测试数据库。

具体来说,rake db:test:prepare将采取以下措施:

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

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

Rake db: test: 预备对于像 这个这样的 PG 问题是一个很好的解决方案。

如果有正确的 Rails 命名和约定,我就不能执行 rake db:migrate RAILS_ENV=production

例如,当您不能为讨论过的 给你错误创建测试数据库时: “ PG 未定义表错误关系用户不存在”

都围绕着这个错误 未定义表: 错误: 关系 xxxxx 不存在