119 上面的rake db:migrate在开发环境上运行所有挂起的迁移,并更新db / schema.rb。耙db:test:load从当前db / schema.rb重新创建测试数据库。在随后的尝试中,最好先运行db:test:prepare,因为它首先检查挂起的迁移并适当地警告您。 - http://guides.rubyonrails.org/testing.html 基本上,它处理克隆数据库,因此您不必针对测试运行迁移即可更新测试数据库。 — 理查德·布朗 source 19 rake db:test:prepare现在已弃用。 — Jngai1297 2014年 3 上述网址是死的,这将是新的github.com/rails/rails/blob/4-1-stable/activerecord/... — 痞子 12 它是回 github.com/rails/rails/commit/... — fenec 4 @ Jngai1297不再! — 菲利普2015年 1 @Phillipp还有一个时间guides.rubyonrails.org/v5.0/…– — yozzz
42 具体来说,rake db:test:prepare将执行以下操作: 检查是否有待完成的迁移, 加载测试架构 也就是说,它将查找您的db/schema.rb文件以确定项目中是否存在尚未运行的任何迁移。假设没有未完成的迁移,则它将清空数据库并根据db/schema.rb文件的内容重新加载它。 — 凯文·贝德尔 source
2 rake db:test:prepare是解决此类 PG问题的好方法。 “ PG :: UndefinedTable:错误:关系不存在”,带有正确的Rails命名和约定,在这里我无法执行 rake db:migrate RAILS_ENV=production 例如,当您无法为此处讨论的错误创建测试数据库时:“ PG无法定义的错误关系用户不存在” 所有这些错误都“ PG :: UndefinedTable:错误:关系xxxxx不存在” — 阿尔伯特·加泰罗 source
rake db:test:prepare
现在已弃用。