veekun_pokedex/scripts/set_pokemon_order.py

28 lines
590 B
Python
Executable File

#!/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()