耙db:testing:准备做什么?
我正在跟踪教程video,我无法弄清楚db:test:prepare
命令实际上做了什么。 有人可以提供解释吗?
上面的rake db:migrate会在开发环境上运行任何未决的迁移,并更新db / schema.rb。 rake db:test:load从当前的db / schema.rb重新创buildtesting数据库。 在随后的尝试中,首先运行db:test:prepare是个好主意,因为它首先检查未决的迁移并正确提醒您。
– http://guides.rubyonrails.org/testing.html
基本上它处理克隆数据库,所以你不必针对testing运行迁移来更新testing数据库。
具体来说, rake db:test:prepare
将执行以下操作:
- 检查未决的迁移,
- 并加载testing模式
也就是说,它会查看你的db/schema.rb
文件来确定你的项目中是否存在尚未运行的迁移。 假设没有未完成的迁移,它将根据db/schema.rb
文件的内容加载清空数据库并重新加载它。
耙db:testing:准备是这样的PG问题的一个很好的解决scheme。
“PG :: UndefinedTable:错误:关系不存在”与一个正确的Rails的命名和约定“我不能只是执行rake db:migrate RAILS_ENV=production
例如,当您无法为此处讨论的错误创buildtesting数据库时:“PG未定义的错误关系用户不存在”
所有这个错误“PG :: UndefinedTable:错误:关系xxxxx不存在”