ruby - How can I display a default message while running rails migrations? -
we moving our table data different database archival. so, when users add migrations in main db want display default message reminding them perform same migration table in archived db. how can without having add message manually in migration ?
prakash proposes elegant solution. original question overriding default tasks add message believe.
maybe try this. courtesy: http://metaskills.net/2010/05/26/the-alias_method_chain-of-rake-override-rake-task/
rake::taskmanager.class_eval 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
now can override rake db:migrate this.
namespace :db override_task :migrate => :environment # message here # invoke original task add ":original" name rake::task["db:migrate:original"].execute ... end end
Comments
Post a Comment