For me it would depend on how long the downtime would be. When I deploy new code and change the database structure it usually takes only a couple of minutes. That's not something I announce days in advance if at all. Most of the time I simply deactivate the system, show a maintenance message, update code and database, and three minutes later activate the system again. Since I don't do it during usual working hours (9-5), nobody has noticed anything yet.