Let Rails have its Id column and create an old_id, or legacy_id, or
customer_id, or whatever…and map it up.
Yes, I agree.
Just treat the old key as an attribute of your new rails model. You
can use ‘validates_uniqueness_of’ to keep the old legacy key unique.
Rails follows convention over configuration. You can venture ‘off the
rails’, but you will have to carry more of the load yourself. Letting
rails do what it wants to do will probably work out as a simpler
solution for you in the long run.