def update(self, db, name, conds, vals): conds = dictify(conds) vals = dictify(vals) tab = db.getTable(name) columns = self.getColumns(db, name) # should work doesn't work :( # q = db.session.query(tab) # q = q.filter_by(**conds) # q = q.update(vals) q = db.getTable(name).update() for key, value in conds.items(): q = self.where(q, key, value, tab, columns) q = q.values(vals) result = db.session.connection().execute(q) if result.rowcount == 0: print(" * skipped update {}".format(json.dumps(conds)), file=sys.stderr) self.skips += 1 else: self.updates += result.rowcount
def insert(self, db, name, vals): columns = self.getColumns(db, name) vals = dictify(vals) keys = vals.keys() for key in keys: if vals[key] == '': if columns[key]['primary']: # don't try to set blank primary keys, assume they are autoincrement vals.pop(key) q = db.getTable(name).insert() q = q.values(vals) db.session.connection().execute(q) self.inserts += 1
def insert(self, db, name, vals): columns = self.getColumns(db, name) vals = dictify(vals) keys = vals.keys() for key in keys: if vals[key] == "": if columns[key]["primary"]: # don't try to set blank primary keys, assume they are autoincrement vals.pop(key) q = db.getTable(name).insert() q = q.values(vals) db.session.connection().execute(q) self.inserts += 1
def delete(self, db, name, conds): conds = dictify(conds) tab = db.getTable(name) columns = self.getColumns(db, name) q = db.getTable(name).delete() for key, value in conds.items(): q = self.where(q, key, value, tab, columns) result = db.session.connection().execute(q) if result.rowcount == 0: print(" * skipped delete {}".format(json.dumps(conds)), file=sys.stderr) self.skips += 1 else: self.deletes += result.rowcount