Esempio n. 1
0
def node_cascade_delete(mapper, connection, target):
    node_id = target.id
    for fact in Facts.query.filter_by(node_id=node_id):
        session.delete(fact)

    for attr in Attrs.query.filter_by(node_id=node_id):
        session.delete(attr)
Esempio n. 2
0
    def delete(self, id):
        id = int(id)
        r = self.model.query.filter_by(id=id).first()
        # We need generate an object hash to pass to the backend notification

        try:
            session.delete(r)
            session.commit()
            return True
        except sqlalchemy.orm.exc.UnmappedInstanceError as e:
            session.rollback()
            msg = "%s id does not exist" % (self.name.title())
            raise exceptions.IdNotFound(message=msg)
        except sqlalchemy.exc.InvalidRequestError as e:
            session.rollback()
            msg = e.msg
            raise RuntimeError(msg)