I tend to "live on the edge" and apply a hot fix directly in the database, assuming it's a simple fix. This isn't because of ego or anything, but because I'm confident in my skills to be careful in the database and time is usually of the essence.
if it's a more complicated solution, I'll mimic the data in my dev environment, create my solution, test the hell out of it, then apply it to production