+ if ver < 6:
+ with app.open_resource('sql/from_5.sql', mode='r') as f:
+ db.execute(f.read())
+ rv=db.prepare("INSERT INTO voter (email, host) (SELECT vt.email, m.host FROM motion AS m, voter AS vt, vote as v "\
+ + "WHERE (m.id=v.motion_id AND v.voter_id = vt.id) OR (m.id=v.motion_id AND v.proxy_id = vt.id) "\
+ + "GROUP BY m.host, vt.email ORDER BY m.host, vt.email)")()
+ rv=db.prepare("UPDATE vote SET voter_id = "\
+ + "(SELECT v_new.id FROM motion AS m, voter AS v_new, voter as v_old "\
+ + "WHERE v_new.email = v_old.email AND v_old.id = vote.voter_id AND "\
+ + "vote.motion_id = m.id AND m.host = v_new.host AND v_old.host is NULL)")()
+ rv=db.prepare("UPDATE vote SET proxy_id = "\
+ + "(SELECT v_new.id FROM motion AS m, voter AS v_new, voter as v_old "\
+ + "WHERE v_new.email = v_old.email AND v_old.id = vote.proxy_id AND "\
+ + "vote.motion_id = m.id AND m.host = v_new.host AND v_old.host is NULL)")()
+ db.prepare("DELETE FROM voter WHERE host IS Null")()
+ db.prepare("ALTER TABLE \"voter\" ALTER COLUMN \"host\" SET NOT NULL")()
+ db.prepare("UPDATE \"schema_version\" SET \"version\"=6")()
+