# Migrations: determine migration number in self.up()?

**URL:** <https://www.ruby-forum.com/t/migrations-determine-migration-number-in-self-up/91449>\
**Category:** Rails\
**Created:** [April 9, 2007, 12:17pm UTC](https://www.ruby-forum.com/t/migrations-determine-migration-number-in-self-up/91449 "2007-04-09T12:17:20Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![josh](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/45deac/32.png) [@josh](https://www.ruby-forum.com/u/josh)\
**Post date:** [April 9, 2007, 12:17pm UTC](https://www.ruby-forum.com/t/migrations-determine-migration-number-in-self-up/91449/1 "2007-04-09T12:17:20Z")

</div>

Hi all

I need to know the number of a migration within the self.up() method,  
and I DON’T WANT TO RELY ON THE FILENAME (XXX\_my\_migration.rb).

So is there a way to determine it somehow?

def self.up  
puts 'doing migration number ’ + migration\_number()  
end

Thanks a lot for help.  
Josh

---

<div class="post-metadata">

**Author:** ![josh](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/45deac/32.png) [@josh](https://www.ruby-forum.com/u/josh)\
**Post date:** [April 9, 2007, 12:27pm UTC](https://www.ruby-forum.com/t/migrations-determine-migration-number-in-self-up/91449/2 "2007-04-09T12:27:24Z")

</div>

Hi Joshua,

> I need to know the number of a migration within the  
> self.up() method, and I DON’T WANT TO RELY ON  
> THE FILENAME (XXX\_my\_migration.rb).
> 
> So is there a way to determine it somehow?
> 
> def self.up  
> puts 'doing migration number ’ + migration\_number()  
> end

Not so nice, but you can try that :

def self.up  
puts “doing migration number :  
#{::ActiveRecord::Migrator.current\_version}”  
end

– Jean-François.

–  
Ruby ( [http://www.rubyfrance.org](http://www.rubyfrance.org) ) on Rails ( [http://www.railsfrance.org](http://www.railsfrance.org)  
)

---

<div class="post-metadata">

**Author:** ![josh](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/45deac/32.png) [@josh](https://www.ruby-forum.com/u/josh)\
**Post date:** [April 9, 2007, 12:41pm UTC](https://www.ruby-forum.com/t/migrations-determine-migration-number-in-self-up/91449/3 "2007-04-09T12:41:01Z")

</div>

Thanks a lot!

May I ask what the prepended :: means and how it works?

::ActiveRecord::Migrator.current\_version

I remarked that the returned number does NOT correspond with the file  
name’s number. Is this because the file number itself is only used for  
sorting the migrations in ascending order and not because it is  
recognized as a number itself?

Thanks.

---

<div class="post-metadata">

**Author:** ![josh](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/45deac/32.png) [@josh](https://www.ruby-forum.com/u/josh)\
**Post date:** [April 9, 2007, 12:48pm UTC](https://www.ruby-forum.com/t/migrations-determine-migration-number-in-self-up/91449/4 "2007-04-09T12:48:49Z")

</div>

Another question:

migration\_number = ::ActiveRecord::Migrator.current\_version.to\_i

gives me an error:

String can’t be coerced into Fixnum

What can I do? The output is “0” (zero), so why is there a problem?

---

<div class="post-metadata">

**Author:** ![josh](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/45deac/32.png) [@josh](https://www.ruby-forum.com/u/josh)\
**Post date:** [April 9, 2007, 12:59pm UTC](https://www.ruby-forum.com/t/migrations-determine-migration-number-in-self-up/91449/5 "2007-04-09T12:59:05Z")

</div>

Joshua M. wrote:

> Another question:
> 
> migration\_number = ::ActiveRecord::Migrator.current\_version.to\_i
> 
> gives me an error:
> 
> String can’t be coerced into Fixnum
> 
> What can I do? The output is “0” (zero), so why is there a problem?

Oh, I got this one myself. 😉
