+#!/usr/bin/env python2
+
+import sqlite3
+
+conn = sqlite3.connect("pokedex/data/pokedex.sqlite")
+
+cur = conn.execute(
+ """select p.id, p.name, pf.name
+ from pokemon p
+ join evolution_chains ec on p.evolution_chain_id = ec.id
+ left join pokemon_forms pf on p.id = pf.unique_pokemon_id
+ order by ec.id, is_baby = 0, coalesce(pf.form_base_pokemon_id, p.id),
+ pf."order", pf.name
+ ;""")
+
+idmap = []
+
+for i, row in enumerate(cur):
+ idmap.append((1 + i, row[0]))
+
+conn.executemany(
+ """update pokemon set "order" = ? where id = ?""",
+ idmap,
+)
+
+conn.commit()
+