Search code examples
ruby-on-railsrakemigrate

Prepend to existing rake task


Defining an existing rake task again appends to the original, but I'd like to prepend to the db:migrate task. I want to raise an error beforehand in some cases. Is there a good way to prepend to an existing rake task?


Solution

  • Try adding a db:custom task on 'db' namespace and invoke db:migrate with enhance method

    # add your custom code on db:custom 
    namespace 'db' do
      task 'custom' do
        puts "do custom db stuff"
      end
    end
    
    # invoke db:migrate 
    Rake::Task['db:migrate'].enhance [:custom]