В Rails 3 ActiveRecord create_table можно включить опцию: id => false. Например
create_table :posts, :id => false do |t| ... end
но возможно ли удалить столбец: id в существующей таблице при последующей миграции?
Вы должны иметь возможность удалить столбец, как и любой другой столбец без идентификатора:
remove_column :posts, :id