> For example, developers often need to make time-consuming changes to primary keys as applications change
I honestly do not recall having to do such a radical redesign on a production deployment. Adding attributes and tables (and the indices and foreign keys that go with it) yes, I'd say that's fairly common as a product evolves, but changing primary keys?
But who knows, maybe I've just been lucky for the first twenty years. Has anyone here had a different experience?