def run(direction)
      self.status.direction = direction

      # reset the status if the job is rerunnable and has already be completed
      self.status.reset! if self.class.rerunnable_safe? && completed?(direction) 
      self.status.execution_time = time_it { self.send(direction) }
      self.status.last_succesful_completion = Time.now
    end
def run(direction)
      self.status.direction = direction

      # reset the status if the job is rerunnable and has already be completed
      self.status.reset! if self.class.rerunnable_safe? && completed?(direction) 
      self.status.execution_time = time_it { self.send(direction) }
      self.status.last_succesful_completion = Time.now
    end
Makes sure status get instanciated on migration's instanciation
 Runs the migration following the direction
 sets the status, the execution time and the last succesful_completion date