If you’re anything like me, you like to keep database columns in a reasonably logical order. In my case I generally keep primary keys as the first column, then content columns, then special usage columns, then foreign keys e.g.
id name description created_on updated_on account_id
Now, say I added a ‘slug’ column with a migration:
That’s fine, I have my new column but it’s after my foreign keys:
id name description created_on updated_on account_id slug
What’s it doing down there? I want it after the ‘name’ column! …wouldn’t it be nice if you could specify an
:after option for
We can make this possible by monkey patching the add_column method at the top of our migration file (I will make this into a plugin when I get time):
This lets us do the following:
Which gives us:
id name slug description created_on updated_on account_id
Much better… this may seem a little petty, however as your tables get more and more columns it makes things much easier to follow.
Please note: I have only tested this with MySQL
h4. Update: this is now a plugin and can be “downloaded here”:http://svn.soniciq.com/public/rails/plugins/iq_migration_extensions/