I've always had a difficult time deciding where the best place is to manage my "master" set of data structures for my data access layer. Traditionally, I've always started with a database and used a code generation tool to get a set of code models (i.e. ActiveRecord in SubSonic). Lately, however, I've been attracted by the idea of managing my models in code and letting the database schema changes propagate out (i.e. SimpleRepository in SubSonic).
So I'm wondering, what do you traditionally find better - database to code mirror, or code to database mirror? Under what circumstances do you find one better than the other(s)? What implications are there for deployment? Are there any other approaches?