我正在跟踪 Rails 教程视频,但是我不知道 db:test:prepare命令实际上是做什么的。有人能解释一下吗?
db:test:prepare
上面的 rake db: shift 在 开发环境并更新 db/schema.rb. rake Load 从当前 在后续尝试中,最好首先运行 db/schema.rb Test: ready,因为它首先检查挂起的迁移并发出警告 适合你。
—— http://guides.rubyonrails.org/testing.html
基本上,它处理克隆数据库,这样您就不必根据 test 运行迁移来更新测试数据库。
具体来说,rake db:test:prepare将采取以下措施:
rake db:test:prepare
也就是说,它将查看 db/schema.rb文件以确定项目中是否存在尚未运行的迁移。假设没有未完成的迁移,那么它将清空数据库并根据 db/schema.rb文件的内容重新加载它。
db/schema.rb
Rake db: test: 预备对于像 这个这样的 PG 问题是一个很好的解决方案。
如果有正确的 Rails 命名和约定,我就不能执行 rake db:migrate RAILS_ENV=production
rake db:migrate RAILS_ENV=production
例如,当您不能为讨论过的 给你错误创建测试数据库时: “ PG 未定义表错误关系用户不存在”
都围绕着这个错误 未定义表: 错误: 关系 xxxxx 不存在