Add Pokemon form support to seeding (Alolan, regional variants, etc.)

Pokemon forms with dex IDs >= 10000 (e.g., Alolan Rattata = 10091) were
being collected in encounter data but missing from pokemon.json, causing
them to be silently dropped during DB seeding. Now fetch_all_pokemon()
also fetches form entries that appear in encounter data, with clean
display names like "Rattata (Alola)" and correct form-specific types.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-07 14:32:13 +01:00
parent 5edda2dba9
commit 9cec9836b4
4 changed files with 420 additions and 80 deletions

View File

@@ -8724,5 +8724,145 @@
"ghost"
],
"sprite_url": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/1025.png"
},
{
"national_dex": 10016,
"name": "Basculin (Blue Striped)",
"types": [
"water"
],
"sprite_url": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/10016.png"
},
{
"national_dex": 10091,
"name": "Rattata (Alola)",
"types": [
"dark",
"normal"
],
"sprite_url": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/10091.png"
},
{
"national_dex": 10092,
"name": "Raticate (Alola)",
"types": [
"dark",
"normal"
],
"sprite_url": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/10092.png"
},
{
"national_dex": 10101,
"name": "Sandshrew (Alola)",
"types": [
"ice",
"steel"
],
"sprite_url": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/10101.png"
},
{
"national_dex": 10103,
"name": "Vulpix (Alola)",
"types": [
"ice"
],
"sprite_url": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/10103.png"
},
{
"national_dex": 10105,
"name": "Diglett (Alola)",
"types": [
"ground",
"steel"
],
"sprite_url": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/10105.png"
},
{
"national_dex": 10106,
"name": "Dugtrio (Alola)",
"types": [
"ground",
"steel"
],
"sprite_url": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/10106.png"
},
{
"national_dex": 10107,
"name": "Meowth (Alola)",
"types": [
"dark"
],
"sprite_url": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/10107.png"
},
{
"national_dex": 10109,
"name": "Geodude (Alola)",
"types": [
"rock",
"electric"
],
"sprite_url": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/10109.png"
},
{
"national_dex": 10110,
"name": "Graveler (Alola)",
"types": [
"rock",
"electric"
],
"sprite_url": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/10110.png"
},
{
"national_dex": 10112,
"name": "Grimer (Alola)",
"types": [
"poison",
"dark"
],
"sprite_url": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/10112.png"
},
{
"national_dex": 10114,
"name": "Exeggutor (Alola)",
"types": [
"grass",
"dragon"
],
"sprite_url": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/10114.png"
},
{
"national_dex": 10123,
"name": "Oricorio (Pom Pom)",
"types": [
"electric",
"flying"
],
"sprite_url": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/10123.png"
},
{
"national_dex": 10124,
"name": "Oricorio (Pau)",
"types": [
"psychic",
"flying"
],
"sprite_url": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/10124.png"
},
{
"national_dex": 10125,
"name": "Oricorio (Sensu)",
"types": [
"ghost",
"flying"
],
"sprite_url": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/10125.png"
},
{
"national_dex": 10126,
"name": "Lycanroc (Midnight)",
"types": [
"rock"
],
"sprite_url": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/10126.png"
}
]