All the time! We use PHP, so each request is a blank slate -- persistent state is all in mysql, redis and memcached.
DB schemas are pushed/applied before the code that uses them.
Also if it wasn't clear: all those steps are automated, other than running the "I want trunk on prod now" script. We really should make that a post-test hook. Any year now ;-)