1
0
Fork 0
mirror of https://github.com/veekun/pokedex.git synced 2024-08-20 18:16:34 +00:00

Fixed a slew of foriegn key import problems.

Curse's type_id was 0, which is bogus; this has been fixed by creating a
real ????? type.
Fourth-gen moves all had zero as a contest effect id, which was also
bogus.
Pokémon 494 and 495 were junk and have been scrapped entirely.
pokemon_form_groups's description column was too short.

pokedex's connect() now takes kwargs passed to sessionmaker().

A more major change: some tables, like pokemon, are self-referential and
contain rows that refer to rows later in the table (for example, Pikachu
evolves from Pichu, which has a higher id).  At the moment such a row is
loaded, the foreign key is thus bogus.  I solved this by turning on
autocommit and wrapping add() in a try block, then attempting to readd
every failed row again after the rest of the table is finished.  Slows
the import down a bit, but makes it work perfectly with foreign key
checks on.
This commit is contained in:
Eevee 2009-07-03 23:12:13 -04:00
parent 185264a288
commit 634ef3ed1e
9 changed files with 156 additions and 140 deletions
pokedex/db

View file

@ -176,7 +176,7 @@ class Move(TableBase):
effect_id = Column(Integer, ForeignKey('move_effects.id'), nullable=False)
effect_chance = Column(Integer)
contest_type = Column(Unicode(8), nullable=False)
contest_effect_id = Column(Integer, ForeignKey('contest_effects.id'), nullable=False)
contest_effect_id = Column(Integer, ForeignKey('contest_effects.id'), nullable=True)
super_contest_effect_id = Column(Integer, nullable=False)
class Pokemon(TableBase):
@ -270,7 +270,7 @@ class PokemonFlavorText(TableBase):
class PokemonFormGroup(TableBase):
__tablename__ = 'pokemon_form_groups'
pokemon_id = Column(Integer, ForeignKey('pokemon.id'), primary_key=True, nullable=False, autoincrement=False)
description = Column(Unicode(255), nullable=False)
description = Column(Unicode(512), nullable=False)
class PokemonFormSprite(TableBase):
__tablename__ = 'pokemon_form_sprites'