X-Git-Url: http://git.veekun.com/zzz-pokedex.git/blobdiff_plain/a50288140f99e145e223898bac593b2337757154..dab6b26ebc19ec82fe98f0c3c7167b7e78cfdb9a:/pokedex/db/tables.py?ds=inline diff --git a/pokedex/db/tables.py b/pokedex/db/tables.py index 31a4210..0ed200c 100644 --- a/pokedex/db/tables.py +++ b/pokedex/db/tables.py @@ -127,10 +127,11 @@ class Generation(TableBase): main_region = Column(Unicode(16), nullable=False) class GrowthRate(TableBase): + """`formula` is written in LaTeX math notation.""" __tablename__ = 'growth_rates' id = Column(Integer, primary_key=True, nullable=False) - name = Column(Unicode(16), nullable=False) - formula = Column(Unicode(255), nullable=False) + name = Column(Unicode(20), nullable=False) + formula = Column(Unicode(500), nullable=False) class Item(TableBase): __tablename__ = 'items' @@ -155,6 +156,12 @@ class LocationArea(TableBase): internal_id = Column(Integer, nullable=False) name = Column(Unicode(64), nullable=True) +class Machine(TableBase): + __tablename__ = 'machines' + machine_number = Column(Integer, primary_key=True, nullable=False, autoincrement=False) + generation_id = Column(Integer, ForeignKey('generations.id'), primary_key=True, nullable=False, autoincrement=False) + move_id = Column(Integer, ForeignKey('moves.id'), nullable=False) + class MoveEffect(TableBase): __tablename__ = 'move_effects' id = Column(Integer, primary_key=True, nullable=False) @@ -172,6 +179,7 @@ class Move(TableBase): __tablename__ = 'moves' id = Column(Integer, primary_key=True, nullable=False) name = Column(Unicode(12), nullable=False) + generation_id = Column(Integer, ForeignKey('generations.id'), nullable=False) type_id = Column(Integer, ForeignKey('types.id'), nullable=False) power = Column(SmallInteger) pp = Column(SmallInteger, nullable=False) @@ -296,7 +304,7 @@ class PokemonMove(TableBase): version_group_id = Column(Integer, ForeignKey('version_groups.id'), primary_key=True, nullable=False, autoincrement=False) move_id = Column(Integer, ForeignKey('moves.id'), primary_key=True, nullable=False, autoincrement=False, index=True) pokemon_move_method_id = Column(Integer, ForeignKey('pokemon_move_methods.id'), primary_key=True, nullable=False, autoincrement=False) - level = Column(Integer, primary_key=True, nullable=True) + level = Column(Integer, primary_key=True, nullable=True, autoincrement=False) order = Column(Integer, nullable=True) class PokemonMoveMethod(TableBase): @@ -375,6 +383,14 @@ EvolutionChain.growth_rate = relation(GrowthRate, backref='evolution_chains') LocationArea.location = relation(Location, backref='areas') +Machine.generation = relation(Generation) + +Move.type = relation(Type, backref='moves') +Move.generation = relation(Generation, backref='moves') +Move.target = relation(MoveTarget, backref='moves') +Move.effect = relation(MoveEffect, backref='moves') +Move.machines = relation(Machine, backref='move') + Pokemon.abilities = relation(Ability, secondary=PokemonAbility.__table__, order_by=PokemonAbility.slot, backref='pokemon') @@ -430,3 +446,5 @@ Type.target_efficacies = relation(TypeEfficacy, Version.generation = relation(Generation, secondary=VersionGroup.__table__, backref='versions') Version.version_group = relation(VersionGroup, backref='versions') + +VersionGroup.generation = relation(Generation, backref='version_groups')