migration numbers

Why do the migration numbers not appear. I am following the famous depot
example, but I am finding that when I migrate the database using rake
db:migrate I get a createproducts file with a long integer string before
the .rb file, i.e. 20100730085920_create_products.rb. How do I get this
changed. See I want to roll back the database and/or make some
ammendments but I cannot find a way to get this done as in the example
the preceeding integer is supposed to be only 001. Is this a setting
someplace?

Why do the migration numbers not appear. I am following the famous depot
example, but I am finding that when I migrate the database using rake
db:migrate I get a createproducts file with a long integer string before
the .rb file, i.e. 20100730085920_create_products.rb. How do I get this
changed. See I want to roll back the database and/or make some
ammendments but I cannot find a way to get this done as in the example
the preceeding integer is supposed to be only 001. Is this a setting
someplace?

20100730085920 is the migration number. This changed something like 2
years go, which implies that the tutorial you are following might be a
bit out of date.

Fred

Dis Tec wrote:

Why do the migration numbers not appear. I am following the famous depot
example, but I am finding that when I migrate the database using rake
db:migrate I get a createproducts file with a long integer string before
the .rb file, i.e. 20100730085920_create_products.rb. How do I get this
changed. See I want to roll back the database and/or make some
ammendments but I cannot find a way to get this done as in the example
the preceeding integer is supposed to be only 001. Is this a setting
someplace?

I believe this is related to the version of Rails.

Anyone is welcome to correct me, but the Depot application tutorial is
*dated*. At the time of that tutorial, migration date and time prefixes
where not used.

It is far better to have the prefix of date and time than a simple 3
digit integer.

That said, I'm sure there will be a way to alter the prefix. A Google
search should give you the answer if what I've said is not satisfactory.

Dis Tec wrote:

Why do the migration numbers not appear. I am following the famous depot
example, but I am finding that when I migrate the database using rake
db:migrate I get a createproducts file with a long integer string before
the .rb file, i.e. 20100730085920_create_products.rb. How do I get this
changed. See I want to roll back the database and/or make some
ammendments but I cannot find a way to get this done as in the example
the preceeding integer is supposed to be only 001. Is this a setting
someplace?

BTW I am using MySQL, is this a problem with the DB. I have tried adding
a +1 to version number and migrating.

Frederick Cheung wrote:

That number (20100730085920) is

Year 2010
Month 07
Day 30
Hour 08
Minute 59
Seconds 20

and tells you much more about the migration than 012 does.

If you really must have your three digit migration numbers, then just
rename the file after it is created...

ruby script/generate migration blah blah blah
<rename the file now>
rake db:migrate

But please do try to find a newer tutorial... the depot tutorial is
ancient, and many things have changed..

You can revert to the sequential numbering scheme by setting
config.active_record.timestamped_migrations to false in config/
environment.rb.

--Martin

I'm assuming the depot example is the one from Agile Web Development with Rails.

There have been 3 printed editions of AWDWR, the first came out right
before Rails 1.0, the second covered Rails 1.1 (which had lots of
changes) but was before the change to timestamped migrations*. The
latest, for which Sam Ruby took over the role of primary author from
Dave Thomas, covers Rails 2.x and is the first to show timestamped
migrations. In each of these the depot app has been brought up to
the, then, current version of Rails.

And there's a fourth edition in preparation which covers Rails 3.
It's available under the Pragmatic Programmers beta program, in
softcopy (pdf, epub, and mobi formats) updated as they get closer to
press, and optionally as a pre-ordered print edition.

Since I'm a bit of a pack-rat, my bookshelf holds all 3 printed
editions, I bought the beta versions of at least the 3rd and upcoming
4th editions. I always used to pre-order the paper copy, but since I
seem to be able to comfortably read books and the like on my iPad
(something I was never comfortable with on a desktop or laptop). I
decided to just go with the soft copy,

* It hasn't been mentioned, but the reason rails went from sequence
numbered to timestamped migrations is that on projects with more than
one developer it was not uncommon to have collisions over the
numbering when different developers were working on different
branches. Since it's highly unlikely that two developers will
generate migrations at the same second, this goes a long way to
alleviate the problem. As with many things in Rails, it started out
as a patch/plugin from some Rails user and eventually got assimilated
into the Borg^h^h^h^h^h^h^h^hRails.