X-Git-Url: http://git.veekun.com/zzz-pokedex.git/blobdiff_plain/65b89cfc18745c569c81058754cb85c709426b2f..ae59bd505e719f9171c1221f53869684e96784e3:/pokedex/db/tables.py diff --git a/pokedex/db/tables.py b/pokedex/db/tables.py index 80c191a..52ce061 100644 --- a/pokedex/db/tables.py +++ b/pokedex/db/tables.py @@ -1,6 +1,6 @@ # encoding: utf8 -from sqlalchemy import Column, ForeignKey, MetaData, Table +from sqlalchemy import Column, ForeignKey, MetaData, PrimaryKeyConstraint, Table from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.ext.associationproxy import association_proxy from sqlalchemy.orm import backref, eagerload_all, relation @@ -177,7 +177,7 @@ class EvolutionChain(TableBase): __tablename__ = 'evolution_chains' id = Column(Integer, primary_key=True, nullable=False) growth_rate_id = Column(Integer, ForeignKey('growth_rates.id'), nullable=False) - baby_trigger_item = Column(Unicode(12)) + baby_trigger_item_id = Column(Integer, ForeignKey('items.id'), nullable=True) class EvolutionTrigger(TableBase): __tablename__ = 'evolution_triggers' @@ -462,7 +462,7 @@ class Pokemon(TableBase): weight = Column(Integer, nullable=False) species = Column(Unicode(16), nullable=False) color_id = Column(Integer, ForeignKey('pokemon_colors.id'), nullable=False) - pokemon_shape_id = Column(Integer, ForeignKey('pokemon_shapes.id'), nullable=False) + pokemon_shape_id = Column(Integer, ForeignKey('pokemon_shapes.id'), nullable=True) habitat_id = Column(Integer, ForeignKey('pokemon_habitats.id'), nullable=True) gender_rate = Column(Integer, nullable=False) capture_rate = Column(Integer, nullable=False) @@ -619,12 +619,17 @@ class PokemonItem(TableBase): class PokemonMove(TableBase): __tablename__ = 'pokemon_moves' - pokemon_id = Column(Integer, ForeignKey('pokemon.id'), primary_key=True, nullable=False, autoincrement=False) - 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, autoincrement=False, index=True) - order = Column(Integer, nullable=True, index=True) + pokemon_id = Column(Integer, ForeignKey('pokemon.id'), nullable=False, index=True) + version_group_id = Column(Integer, ForeignKey('version_groups.id'), nullable=False, index=True) + move_id = Column(Integer, ForeignKey('moves.id'), nullable=False, index=True) + pokemon_move_method_id = Column(Integer, ForeignKey('pokemon_move_methods.id'), nullable=False, index=True) + level = Column(Integer, nullable=True, index=True) + order = Column(Integer, nullable=True) + + __table_args__ = ( + PrimaryKeyConstraint('pokemon_id', 'version_group_id', 'move_id', 'pokemon_move_method_id', 'level'), + {}, + ) class PokemonMoveMethod(TableBase): __tablename__ = 'pokemon_move_methods' @@ -759,6 +764,7 @@ EncounterSlotCondition.condition = relation(EncounterCondition, backref='slot_map') EvolutionChain.growth_rate = relation(GrowthRate, backref='evolution_chains') +EvolutionChain.baby_trigger_item = relation(Item, backref='evolution_chains') Experience.growth_rate = relation(GrowthRate, backref='experience_table')