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. #29
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:
parent
185264a288
commit
634ef3ed1e
9 changed files with 156 additions and 140 deletions
pokedex/db
|
@ -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'
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue