merge.py 文件源码

python
阅读 27 收藏 0 点赞 0 评论 0

项目:Sentry 作者: NetEaseGame 项目源码 文件源码
def merge_objects(models, group, new_group, limit=1000,
                  logger=None):

    has_more = False
    for model in models:
        if logger is not None:
            logger.info('Merging %r objects where %r into %r', model, group,
                        new_group)
        for obj in model.objects.filter(group=group)[:limit]:
            try:
                with transaction.atomic(using=router.db_for_write(model)):
                    model.objects.filter(
                        id=obj.id
                    ).update(group=new_group)
            except IntegrityError:
                delete = True
            else:
                delete = False
            if delete:
                obj.delete()
            has_more = True

        if has_more:
            return True
    return has_more
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号