Best Way to detect if you are in a migration?

I have a method where I would like output to occur via "puts" only if
its currently in the middle of a rake task or if its in the middle of a

How can I detect if the program execution is in the context of a
migration or a rake task?


Not sure about this, but I think calling self.class or self.parent
inside a migration task (self.up and self.down) should return

right, but Im talking about deep in the code, like in an ActiveRecord
model lets say.

I im interested in this question, has somebody the answer?

I recently posted a similar question. No answer...

Create your own class that inherits ActiveRecord::Migration and use
it, defining the behavior you would like to have.

i once had a similar problem. in my case i wanted to skip some code
whenever it is called from a rake task. back then i solved it the way
Frantisek Psotka proposed. still working, no problems. just set your
ENV-variable at the beginning of your rake task.