X-Git-Url: http://git.veekun.com/zzz-pokedex.git/blobdiff_plain/3031a2e3f412d6fd4ef397f5336792638d849e83..e3a947d5fd6bce7a0bddf9f40c8b667c3c996d7a:/pokedex/db/tables.py?ds=sidebyside diff --git a/pokedex/db/tables.py b/pokedex/db/tables.py index cedc6a4..57207dd 100644 --- a/pokedex/db/tables.py +++ b/pokedex/db/tables.py @@ -2,6 +2,7 @@ from sqlalchemy import Column, ForeignKey, MetaData, Table from sqlalchemy.ext.declarative import declarative_base +from sqlalchemy.ext.associationproxy import association_proxy from sqlalchemy.orm import backref, relation from sqlalchemy.types import * from sqlalchemy.databases.mysql import * @@ -179,6 +180,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) @@ -365,6 +367,8 @@ class Version(TableBase): version_group_id = Column(Integer, ForeignKey('version_groups.id'), nullable=False) name = Column(Unicode(32), nullable=False) + generation = association_proxy('version_group', 'generation') + ### Relations down here, to avoid ordering problems Encounter.pokemon = relation(Pokemon, backref='encounters') @@ -380,11 +384,15 @@ EncounterTypeSlot.type = relation(EncounterType, backref='slots') EvolutionChain.growth_rate = relation(GrowthRate, backref='evolution_chains') +Generation.versions = relation(Version, secondary=VersionGroup.__table__) + 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') @@ -440,8 +448,6 @@ Type.target_efficacies = relation(TypeEfficacy, ==TypeEfficacy.target_type_id, backref='target_type') -Version.generation = relation(Generation, secondary=VersionGroup.__table__, - backref='versions') Version.version_group = relation(VersionGroup, backref='versions') VersionGroup.generation = relation(Generation, backref='version_groups')