First, we don't have any big databases so mods aren't that tricky.

Huh?

We have the mother of all SOAs, each service keeps the data it wants any way it wants to. Some is in databases, some is in flat files, pickles, bdbs, whatever. Its not particularly normalized or anything - its totally optimized for speed - cache and hash is the order of the day. So schemas tend to be small and fairly simple - one to two dozen tables tops. Nine out of ten times you're hitting cache for stuff. The term "eventually consistent" gets used a lot.

We have elaborate automated build and deploy system that runs scripts at various phases - db alter scripts can be added as appropriate.

I don't know a lot more about it than that as I've pretty much been client focused.

When I do my own web based db apps, I have the Smalltalk objects automatically reshape to the database schema everytime I connect and I use the glorp ORM lib to map entities to objects and tables.