Thinking about Migrating?
Unlike the featured caribou, I hate migrating. More specifically, I had migrations in web development; especially in Rails.
Here is why:
- Migrations are used throughout the development process when they are only required after having deployed to production. Who cares if you loose data while developing?
- Migrations duplicate functionality that every good software developer uses: version control. SVN, GIT and Mercurial are all great at revision tracking and the duplicate functionality offered by migrations is unnecessary.
- Migrations make it difficult to identify what attributes a model has. Instead of defining everything within the model, developers need to refer to the schema.
Hating migrations leaves few solutions. My favourite is switching to a schema-less database like MongoDB (free hosting at MongoHQ) and then adding model integration to Rails with Mongoid or MongoMapper. This unfortunately is not be practical in many cases. For a less drastic solution try DataMapper.