如何在一个环境中使用Rails执行多个命令?

时间:2012-06-27 15:10:19

标签: ruby-on-rails ruby-on-rails-3

有没有办法在一行上执行多个Rails 3 rake命令,要求环境只启动一次?

我知道这是可能的:

rake db:rollback db:migrate

但如果选项通过,

rake db:migrate VERSION=0 db:migrate

第二个'db:migrate'将无法运行。

2 个答案:

答案 0 :(得分:3)

我认为不可能。

我能想到的最快的解决方案是:

RAILS_ENV=test rake db:migrate VERSION=0 && rake db:migrate

我认为这是不可能的原因是因为VERSION只是一个常量,而不是作为db:migrate选项传递的属性。例如,所有这些命令都有效:

rake db:migrate VERSION=0

rake VERSION=0 db:migrate

VERSION=0 rake db:migrate

由于你不能再次在同一个动作中重写常量,你基本上会两次调用db:migrate VERSION=0

答案 1 :(得分:0)

为什么不试试Zeus

它预先加载了rails,rake,test environment等环境。