如果未指定RAILS_ENV
,则db:create
和db:drop
会影响开发和测试。但是在同样的情况下db:migrate
只会影响开发。这是为什么?
答案 0 :(得分:5)
这是因为HTTP 400: ["reason"]
数据库仅在运行测试时才通过test
进行更新。
请参阅here:
为了运行测试,您的测试数据库需要具有当前结构。测试助手检查您的测试数据库是否有任何挂起的迁移。如果是这样,它会尝试将
schema.rb
或db/schema.rb
加载到测试数据库中。如果迁移仍处于暂挂状态,则会引发错误。通常,这表示您的架构未完全迁移。 针对开发数据库(db/structure.sql
)运行迁移将使架构更新。