耙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不存在”