I recently (like a few minutes ago) attempted to integrate a number of existing legacy MySQL tables into a Rails project. Thus, for the first time I have had to dig into migrations a bit further. Migrations make iterative database development fairly pleasant, but I did run into a problem with a few pesky tables that didn't already have a primary key. These were tables that didn't necessarily need primary keys in their past lives, but I have found that there is just no point in not "going with the flow" of Rails conventions. So they needed primary keys.