X-Git-Url: http://git.veekun.com/zzz-pokedex.git/blobdiff_plain/dcd5e418428fbc626e675c3e0cf861cff3c4bff1..dab6b26ebc19ec82fe98f0c3c7167b7e78cfdb9a:/pokedex/db/tables.py?ds=inline diff --git a/pokedex/db/tables.py b/pokedex/db/tables.py index 096e678..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) @@ -375,7 +383,13 @@ 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, @@ -432,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')