veekun_pokedex/scripts/version-group-pokemon-move-methods.py

36 lines
1 KiB
Python
Raw Permalink Normal View History

# Encoding: UTF-8
"""Fill the version_group_pokemon_move_methods table
This is an unmaintained one-shot script, only included in the repo for reference.
"""
from sqlalchemy.sql import exists, func
from sqlalchemy.orm import lazyload
from sqlalchemy import and_, or_, not_
from pokedex.db import connect, tables, load
session = connect()
session.query(tables.VersionGroupPokemonMoveMethod).delete()
q = session.query(tables.VersionGroup, tables.PokemonMoveMethod)
q = q.filter(exists().where(and_(
tables.PokemonMove.pokemon_move_method_id == tables.PokemonMoveMethod.id,
tables.PokemonMove.version_group_id == tables.VersionGroup.id)))
q = q.options(lazyload('*'))
for version_group, pokemon_move_method in q:
entry = tables.VersionGroupPokemonMoveMethod(
version_group=version_group,
pokemon_move_method=pokemon_move_method,
)
session.add(entry)
load.dump(session, tables=['version_group_pokemon_move_methods'])
print "Dumped to CSV, rolling back transaction"
session.rollback()