【发布时间】:2019-03-25 03:22:07
【问题描述】:
我了解rails db:migrate只会影响开发数据库。
在运行 rspec 与 guard-rspec 和 spring 时,测试环境不会自动应用迁移。相反,您必须让guard 失败,手动运行RAILS_ENV=test rails db:migrate,然后再次运行您的rspec 守卫。这是根据此问题的预期行为:https://github.com/rails/rails/issues/25804
我怎样才能让rails db:migrate 同时为这两个环境执行此操作,或者让spring rspec 也自动为测试环境运行挂起的迁移?
我宁愿避免使用 bash/zsh/shell 别名,因为它必须在每个人的机器上手动设置。
【问题讨论】:
-
您链接到的 github 问题说默认行为是迁移自动在测试环境中运行。
-
除非您使用 Spring 运行 rspec,否则它们不会自动运行。
-
你没有。
RAILS_ENV=test rails db:migrate && RAILS_ENV=development rails db:migrate或rails db:migrate db:test:prepare。这是设计使然。