The 32 bit integer primary key issue is so painful. I went through that once (we got the migration completed before the PK maxed out but it was a nail-biter) and I never want to do that again. I'm a strong proponent of 64 bit integers ("bigint") for serial primary keys by default. An extra 4 bytes per row overhead is well worth the peace of mind.