Are there any gotchas to using a non-integer column for the id in an ActiveRecord model? We're going to be using replicated databases, with copies of a Rails app writing to those databases in different datacenters. I'm worried that with normal IDs we'll get collisions between newly created rows in different datacenters.
Our DBA has suggested just initializing the identity columns with different starting points for each of the different databases/datacenters, but over time those will eventually overlap and end up colliding (the particular table I'm worried about is going to be very high traffic). I'm sure it would work great for a while, but I don't want to be the one to debug what's wrong when things start to go wonky 2 years down the road.
I'd like to just replace the id columns with GUIDs. The database can generate them transparently, just as the id is normally generated. MS guarantees that they won't collide between our different databases. The downside there is that I have to make sure Rails isn't going to barf on id columns that aren't integers.
Has anyone else tried something like this? How much of the ActiveRecord plumbing did you have to change?