Ejemplo n.º 1
0
    def cascade_delete(self, tb_id):
        relation_model = Relation()
        share_model = Share()
        gen_model = Gen()

        rel_tbs = [tb_id]
        # 需要删除此表的所有依赖表
        rel_tb_infos = []
        relation_model.get_all_rel_tables(tb_id, rel_tb_infos)
        for tb_info in rel_tb_infos:
            rel_tbs.append(tb_info['tb_id'])
        for tb_id in rel_tbs:
            # 删除数据表
            self.delete(tb_id)
            # 删除合表规则
            gen_model._delete({Gen.TB_ID: tb_id})
            # 删除分享表
            share_model.delete_tb_share(tb_id)
            # 删除此表的依赖关系
            relation_model.delete_rel_info(tb_id)
        self.logger.warn('delete tb: %s' % ','.join(rel_tbs))