I agree - in this case it makes sense, however I generally add *both* the db constraint and the model validation.

While redundant, it's nice to have both, in case one goes missing. Also models are probably more frequently read than schema, so the information is more handy (to me) in the model validation. Probably personal preference, but just sharing my rationale.