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

Dar*_*ous 3 ruby-on-rails

如果没有RAILS_ENV指定,db:createdb:drop影响到开发和测试.但是在同样的情况下db:migrate只影响发展.为什么是这样?

sja*_*agr 5

这是因为只有在运行测试时test才会通过数据库进行更新schema.rb.

看到这里:

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