Shouldn't this be:
if not self.clean or self.upgrade_files or self.upgrade_db:

if the upgrade_files and upgrade_db are not specified, that's when it's ok to just rely on the clean flag