Fixed a slew of foriegn key import problems. #29
authorEevee <git@veekun.com>
Sat, 4 Jul 2009 03:12:13 +0000 (23:12 -0400)
committerEevee <git@veekun.com>
Sat, 4 Jul 2009 03:12:13 +0000 (23:12 -0400)
commit638bc0eb815f3cb8bff0bfc027d4d0d931ab7273
tree074a79293f5a4ed94692247f8a16039b1db00eac
parent1bae4f512e4494eb65c8086415a63cf1a82bc461
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.
pokedex/__init__.py
pokedex/data/csv/moves.csv
pokedex/data/csv/pokemon.csv
pokedex/data/csv/pokemon_egg_groups.csv
pokedex/data/csv/pokemon_stats.csv
pokedex/data/csv/pokemon_types.csv
pokedex/data/csv/types.csv
pokedex/db/__init__.py
pokedex/db/tables.py