在Rails测试环境下运行数据库迁移

27

我知道我可以运行特定的数据库迁移

rake db:migrate:up VERSION=20080906120000

我能否针对我的测试数据库运行特定的迁移?以下操作是否可行?

RAILS_ENV=test rake db:migrate:up VERSION=20080906120000

理论上,在默认模式下运行迁移(应该会影响开发数据库),然后运行rake db:test:prepare命令就可以完成工作,但在这样做之后,我发现我的测试数据库有些奇怪的问题,因此我需要在测试数据库上运行特定的迁移来帮助排除故障。

我本可以尝试上述rake命令,但我正在对我的开发数据库进行长时间数据填充操作,而且我不能冒险让迁移干扰它,所以我想看看是否有人知道答案,以便在自己确定答案之前能够解决问题。 :)

1个回答

45

按不同的顺序:

rake db:migrate:up VERSION=20080906120000 RAILS_ENV=test

Rails_ENV 是否必须全部大写? - Jwan622
RAILS_ENV 应该是一个环境变量 @Jwan622,所以我猜是的。更多信息请参见 Max's answer - Sebastián Palma
是的,它需要大写;环境变量是区分大小写的,所以RAILS_ENV和rails_env等是两个不同的环境变量。理论上,Rails可以检查两者,但我非常确定它不会这样做,因为如果我尝试另一种方式(rails_env = test),我的测试等都会失败,而使用RAILS_ENV = test则不会。 - Aaron Wallentine

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接