Thinking about Migrating?

Unlike the featured caribou, I hate migrating. More specifically, I had migrations in web development; especially in Rails.

  

Here is why:

  1. 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?
  2. 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.
  3. 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.

Tags: ruby rails