为什么不同的rake命令会影响不同的数据库?

时间:2015-10-06 19:46:47

标签: ruby-on-rails

如果未指定RAILS_ENV,则db:createdb:drop会影响开发和测试。但是在同样的情况下db:migrate只会影响开发。这是为什么?

1 个答案:

答案 0 :(得分:5)

这是因为HTTP 400: ["reason"]数据库仅在运行测试时才通过test进行更新。

请参阅here

  

为了运行测试,您的测试数据库需要具有当前结构。测试助手检查您的测试数据库是否有任何挂起的迁移。如果是这样,它会尝试将schema.rbdb/schema.rb加载到测试数据库中。如果迁移仍处于暂挂状态,则会引发错误。通常,这表示您的架构未完全迁移。 针对开发数据库(db/structure.sql)运行迁移将使架构更新。