def prune_target(engine, target_name, target_type):
if target_type == 'user':
metrics.incr('users_purged')
else:
metrics.incr('others_purged')
try:
engine.execute('''DELETE FROM `target` WHERE `name` = %s AND `type_id` = (SELECT `id` FROM `target_type` WHERE `name` = %s)''', (target_name, target_type))
logger.info('Deleted inactive target %s', target_name)
# The user has messages or some other user data which should be preserved.
# Just mark as inactive.
except IntegrityError:
logger.info('Marking target %s inactive', target_name)
engine.execute('''UPDATE `target` SET `active` = FALSE WHERE `name` = %s AND `type_id` = (SELECT `id` FROM `target_type` WHERE `name` = %s)''', (target_name, target_type))
except SQLAlchemyError as e:
logger.error('Deleting target %s failed: %s', target_name, e)
metrics.incr('sql_errors')
评论列表
文章目录