首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在运行rails迁移时显示默认消息?

如何在运行rails迁移时显示默认消息?
EN

Stack Overflow用户
提问于 2013-03-18 16:25:18
回答 1查看 218关注 0票数 1

我们正在将表数据移动到另一个数据库中进行存档。因此,当用户在Main DB中添加迁移时,我希望显示一条默认消息,提醒他们对archived DB中的表执行相同的迁移。如何在迁移过程中无需手动添加消息即可完成此操作?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-18 17:10:08

普拉卡什提出了一个优雅的解决方案。但你最初的问题是关于重写默认任务来添加我相信的消息。

也许可以试试这样的东西。礼节:http://metaskills.net/2010/05/26/the-alias_method_chain-of-rake-override-rake-task/

代码语言:javascript
运行
复制
Rake::TaskManager.class_eval do
  def alias_task(fq_name)
    new_name = "#{fq_name}:original"
    @tasks[new_name] = @tasks.delete(fq_name)
  end
end

def alias_task(fq_name)
  Rake.application.alias_task(fq_name)
end

def override_task(*args, &block)
  name, params, deps = Rake.application.resolve_args(args.dup)
  fq_name = Rake.application.instance_variable_get(:@scope).dup.push(name).join(':')
  alias_task(fq_name)
  Rake::Task.define_task(*args, &block)
end

现在,您可以像这样覆盖rake :migrate。

代码语言:javascript
运行
复制
 namespace :db do
    override_task :migrate => :environment do
      # Your message here
      # To invoke the original task add ":original" to its name
      Rake::Task["db:migrate:original"].execute
      ...
    end
 end
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15472394

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档