【问题标题】:Implement rake db:rollback STEP=n inside rakefile在 rakefile 中实现 rake db:rollback STEP=n
【发布时间】:2019-01-10 22:03:10
【问题描述】:

我正在尝试像这样组合一堆 rake 任务:

desc 'Resets the database'
task :reset do
  Rake::Task["db:rollback"].invoke
  Rake::Task["db:migrate"].invoke
  Rake::Task["db:seed"].invoke
end

我不知道如何在我的 Rakefile 中使用 STEP=n 来处理 rollback

【问题讨论】:

  • 你为什么想要这样的 rake 任务?你试图归档什么? n 应该是固定的还是可变的?你真的总是运行db:seed,即使你只回滚了一步?
  • 因为否则我必须运行 3 条 rake 命令来重置我的数据库。

标签: ruby rake rollback rake-task rakefile


【解决方案1】:

STEP 是一个环境变量,所以如果你这样做:

    desc 'Resets the database'
    task :reset do
      ENV['STEP'] = '1000' 
# The number has to be greater than
# or equal to the number of your migrations.

      Rake::Task["db:rollback"].invoke
      Rake::Task["db:migrate"].invoke
      Rake::Task["db:seed"].invoke
    end

应该可以的

【讨论】:

  • 非常感谢。 ENV['STEP'] = n 由于某种原因不起作用。但我用ENV['STEP'] = '1000' 试过了,效果很好
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-11-17
  • 1970-01-01
  • 2013-12-27
  • 1970-01-01
  • 2015-02-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多