mirror of
https://github.com/veekun/pokedex.git
synced 2024-08-20 18:16:34 +00:00
Implement a move data changelog. Update old moves to their Gen V stats. #78
This commit is contained in:
parent
7074b96fae
commit
aa00ee83de
3 changed files with 87 additions and 33 deletions
34
pokedex/data/csv/move_changelog.csv
Normal file
34
pokedex/data/csv/move_changelog.csv
Normal file
|
@ -0,0 +1,34 @@
|
|||
move_id,changed_in_version_group_id,power,pp,accuracy
|
||||
20,11,,,75
|
||||
26,11,85,25,
|
||||
33,11,35,,95
|
||||
35,11,,,85
|
||||
37,11,90,20,
|
||||
50,11,,,80
|
||||
80,11,90,20,
|
||||
83,11,15,,70
|
||||
92,11,,,85
|
||||
128,11,,,75
|
||||
136,11,100,20,
|
||||
137,11,,,75
|
||||
139,11,,,55
|
||||
152,11,,,85
|
||||
170,11,,40,
|
||||
178,11,,,85
|
||||
202,11,60,,
|
||||
210,11,10,,
|
||||
248,11,80,15,90
|
||||
250,11,15,,70
|
||||
251,11,10,,
|
||||
253,11,50,,
|
||||
328,11,15,,70
|
||||
331,11,10,,
|
||||
333,11,10,,
|
||||
343,11,40,,
|
||||
350,11,,,80
|
||||
353,11,120,,85
|
||||
382,11,0,,
|
||||
386,11,60,,
|
||||
387,11,130,,
|
||||
409,11,60,5,
|
||||
463,11,,,70
|
|
|
@ -18,24 +18,24 @@ id,name,generation_id,type_id,power,pp,accuracy,priority,target_id,damage_class_
|
|||
17,Wing Attack,1,3,60,35,100,0,10,2,1,,1,12,5
|
||||
18,Whirlwind,1,1,0,20,100,-6,10,1,29,,4,21,9
|
||||
19,Fly,1,3,90,15,95,0,10,2,156,,4,15,6
|
||||
20,Bind,1,1,15,20,75,0,10,2,43,100,5,24,21
|
||||
20,Bind,1,1,15,20,85,0,10,2,43,100,5,24,21
|
||||
21,Slam,1,1,80,20,75,0,10,2,1,,5,23,5
|
||||
22,Vine Whip,1,12,35,15,100,0,10,2,1,,1,1,5
|
||||
23,Stomp,1,1,65,20,100,0,10,2,151,30,5,4,5
|
||||
24,Double Kick,1,2,30,30,100,0,10,2,45,,1,12,7
|
||||
25,Mega Kick,1,1,120,5,75,0,10,2,1,,1,1,18
|
||||
26,Jump Kick,1,2,85,25,95,0,10,2,46,,1,3,5
|
||||
26,Jump Kick,1,2,100,10,95,0,10,2,46,,1,3,5
|
||||
27,Rolling Kick,1,2,60,15,85,0,10,2,32,30,1,5,5
|
||||
28,Sand-Attack,1,5,0,15,100,0,10,1,24,,3,10,19
|
||||
29,Headbutt,1,1,70,15,100,0,10,2,32,30,5,9,5
|
||||
30,Horn Attack,1,1,65,25,100,0,10,2,1,,1,1,5
|
||||
31,Fury Attack,1,1,15,20,85,0,10,2,30,,1,10,7
|
||||
32,Horn Drill,1,1,1,5,30,0,10,2,39,,1,14,9
|
||||
33,Tackle,1,1,35,35,95,0,10,2,1,,5,1,5
|
||||
33,Tackle,1,1,50,35,100,0,10,2,1,,5,1,5
|
||||
34,Body Slam,1,1,85,15,100,0,10,2,7,30,5,4,5
|
||||
35,Wrap,1,1,15,20,85,0,10,2,43,100,5,24,21
|
||||
35,Wrap,1,1,15,20,90,0,10,2,43,100,5,24,21
|
||||
36,Take Down,1,1,90,20,85,0,10,2,49,,5,3,5
|
||||
37,Thrash,1,1,90,20,100,0,8,2,28,,5,6,7
|
||||
37,Thrash,1,1,120,10,100,0,8,2,28,,5,6,7
|
||||
38,Double-Edge,1,1,120,15,100,0,10,2,199,,5,3,9
|
||||
39,Tail Whip,1,1,0,30,100,0,11,1,20,,3,28,19
|
||||
40,Poison Sting,1,4,15,35,100,0,10,2,3,30,4,9,19
|
||||
|
@ -48,7 +48,7 @@ id,name,generation_id,type_id,power,pp,accuracy,priority,target_id,damage_class_
|
|||
47,Sing,1,1,0,15,55,0,10,1,2,,3,18,19
|
||||
48,Supersonic,1,1,0,20,55,0,10,1,50,,4,21,19
|
||||
49,SonicBoom,1,1,1,20,90,0,10,3,131,,1,12,5
|
||||
50,Disable,1,1,0,20,80,0,10,1,87,,4,18,19
|
||||
50,Disable,1,1,0,20,100,0,10,1,87,,4,18,19
|
||||
51,Acid,1,4,40,30,100,0,11,3,73,10,4,4,5
|
||||
52,Ember,1,10,40,25,100,0,10,3,5,10,2,1,5
|
||||
53,Flamethrower,1,10,95,15,100,0,10,3,5,10,2,1,17
|
||||
|
@ -78,10 +78,10 @@ id,name,generation_id,type_id,power,pp,accuracy,priority,target_id,damage_class_
|
|||
77,PoisonPowder,1,4,0,35,75,0,10,1,67,,4,33,19
|
||||
78,Stun Spore,1,12,0,30,75,0,10,1,68,,4,14,19
|
||||
79,Sleep Powder,1,12,0,15,75,0,10,1,2,,4,5,19
|
||||
80,Petal Dance,1,12,90,20,100,0,8,3,28,,2,6,21
|
||||
80,Petal Dance,1,12,120,10,100,0,8,3,28,,2,6,21
|
||||
81,String Shot,1,7,0,40,95,0,11,1,21,,4,9,19
|
||||
82,Dragon Rage,1,16,1,10,100,0,10,3,42,,1,26,5
|
||||
83,Fire Spin,1,10,15,15,70,0,10,3,43,100,2,24,21
|
||||
83,Fire Spin,1,10,35,15,85,0,10,3,43,100,2,24,21
|
||||
84,ThunderShock,1,13,40,30,100,0,10,3,7,10,1,1,5
|
||||
85,Thunderbolt,1,13,95,15,100,0,10,3,7,10,1,1,17
|
||||
86,Thunder Wave,1,13,0,20,100,0,10,1,68,,1,14,19
|
||||
|
@ -90,7 +90,7 @@ id,name,generation_id,type_id,power,pp,accuracy,priority,target_id,damage_class_
|
|||
89,Earthquake,1,5,100,10,100,0,9,2,148,,5,5,18
|
||||
90,Fissure,1,5,1,5,30,0,10,2,39,,5,14,9
|
||||
91,Dig,1,5,80,10,100,0,10,2,257,,4,15,6
|
||||
92,Toxic,1,4,0,10,85,0,10,1,34,,4,33,19
|
||||
92,Toxic,1,4,0,10,90,0,10,1,34,,4,33,19
|
||||
93,Confusion,1,14,50,25,100,0,10,3,77,10,4,9,5
|
||||
94,Psychic,1,14,90,10,100,0,10,3,73,10,4,5,17
|
||||
95,Hypnosis,1,14,0,20,70,0,10,1,2,,4,5,19
|
||||
|
@ -126,7 +126,7 @@ id,name,generation_id,type_id,power,pp,accuracy,priority,target_id,damage_class_
|
|||
125,Bone Club,1,5,65,20,85,0,10,2,32,10,5,10,5
|
||||
126,Fire Blast,1,10,120,5,85,0,10,3,5,10,2,1,17
|
||||
127,Waterfall,1,11,80,15,100,0,10,2,32,20,5,28,5
|
||||
128,Clamp,1,11,35,10,75,0,10,2,43,100,5,24,5
|
||||
128,Clamp,1,11,35,10,85,0,10,2,43,100,5,24,5
|
||||
129,Swift,1,1,60,20,,0,11,3,18,,1,27,17
|
||||
130,Skull Bash,1,1,100,15,100,0,10,2,146,100,5,4,6
|
||||
131,Spike Cannon,1,1,20,15,100,0,10,2,30,,1,10,7
|
||||
|
@ -134,10 +134,10 @@ id,name,generation_id,type_id,power,pp,accuracy,priority,target_id,damage_class_
|
|||
133,Amnesia,1,14,0,20,,0,7,1,55,,3,32,11
|
||||
134,Kinesis,1,14,0,15,80,0,10,1,24,,4,24,11
|
||||
135,Softboiled,1,1,0,10,,0,7,1,33,,2,1,8
|
||||
136,Hi Jump Kick,1,2,100,20,90,0,10,2,46,,1,3,5
|
||||
137,Glare,1,1,0,30,75,0,10,1,68,,5,5,19
|
||||
136,Hi Jump Kick,1,2,130,10,90,0,10,2,46,,1,3,5
|
||||
137,Glare,1,1,0,30,90,0,10,1,68,,5,5,19
|
||||
138,Dream Eater,1,14,100,15,100,0,10,3,9,,4,8,20
|
||||
139,Poison Gas,1,4,0,40,55,0,11,1,67,,4,33,5
|
||||
139,Poison Gas,1,4,0,40,90,0,11,1,67,,4,33,5
|
||||
140,Barrage,1,1,15,20,85,0,10,2,30,,5,12,7
|
||||
141,Leech Life,1,7,20,15,100,0,10,2,4,,4,9,20
|
||||
142,Lovely Kiss,1,1,0,10,75,0,10,1,2,,2,5,19
|
||||
|
@ -150,7 +150,7 @@ id,name,generation_id,type_id,power,pp,accuracy,priority,target_id,damage_class_
|
|||
149,Psywave,1,14,1,15,80,0,10,3,89,,4,14,5
|
||||
150,Splash,1,1,0,40,,0,7,1,86,,3,28,16
|
||||
151,Acid Armor,1,4,0,40,,0,7,1,52,,5,32,11
|
||||
152,Crabhammer,1,11,90,10,85,0,10,2,44,,5,2,18
|
||||
152,Crabhammer,1,11,90,10,90,0,10,2,44,,5,2,18
|
||||
153,Explosion,1,1,250,5,100,0,9,2,8,,2,7,9
|
||||
154,Fury Swipes,1,1,18,15,80,0,10,2,30,,5,10,7
|
||||
155,Bonemerang,1,5,50,10,90,0,10,2,45,,5,1,7
|
||||
|
@ -168,7 +168,7 @@ id,name,generation_id,type_id,power,pp,accuracy,priority,target_id,damage_class_
|
|||
167,Triple Kick,2,2,10,10,90,0,10,2,105,,1,1,7
|
||||
168,Thief,2,17,40,10,100,0,10,2,106,,5,20,12
|
||||
169,Spider Web,2,7,0,10,,0,10,1,107,,4,18,13
|
||||
170,Mind Reader,2,1,0,40,,0,10,1,95,,4,24,20
|
||||
170,Mind Reader,2,1,0,5,,0,10,1,95,,4,24,20
|
||||
171,Nightmare,2,8,0,15,100,0,10,1,108,,4,5,19
|
||||
172,Flame Wheel,2,10,60,25,100,0,10,2,126,10,2,1,7
|
||||
173,Snore,2,1,40,15,100,0,10,3,93,30,3,1,5
|
||||
|
@ -176,7 +176,7 @@ id,name,generation_id,type_id,power,pp,accuracy,priority,target_id,damage_class_
|
|||
175,Flail,2,1,1,15,100,0,10,2,100,,3,26,15
|
||||
176,Conversion 2,2,1,0,30,,0,10,1,94,,2,12,23
|
||||
177,Aeroblast,2,3,100,5,95,0,10,3,44,,1,2,22
|
||||
178,Cotton Spore,2,12,0,40,85,0,10,1,61,,2,10,1
|
||||
178,Cotton Spore,2,12,0,40,100,0,10,1,61,,2,10,1
|
||||
179,Reversal,2,2,1,15,100,0,10,2,100,,1,28,15
|
||||
180,Spite,2,8,0,10,100,0,10,1,101,,5,28,19
|
||||
181,Powder Snow,2,15,40,25,100,0,11,3,6,10,2,1,5
|
||||
|
@ -200,7 +200,7 @@ id,name,generation_id,type_id,power,pp,accuracy,priority,target_id,damage_class_
|
|||
199,Lock-On,2,1,0,5,,0,10,1,95,,4,24,20
|
||||
200,Outrage,2,16,120,15,100,0,8,2,28,,1,6,7
|
||||
201,Sandstorm,2,6,0,10,,0,12,1,116,,5,21,13
|
||||
202,Giga Drain,2,12,60,10,100,0,10,3,4,,4,10,20
|
||||
202,Giga Drain,2,12,75,10,100,0,10,3,4,,4,10,20
|
||||
203,Endure,2,1,0,10,,4,7,1,117,,5,16,13
|
||||
204,Charm,2,1,0,20,100,0,10,1,59,,3,23,19
|
||||
205,Rollout,2,6,30,20,90,0,10,2,118,,5,24,7
|
||||
|
@ -208,7 +208,7 @@ id,name,generation_id,type_id,power,pp,accuracy,priority,target_id,damage_class_
|
|||
207,Swagger,2,1,0,15,90,0,10,1,119,,3,27,19
|
||||
208,Milk Drink,2,1,0,10,,0,7,1,33,,3,12,8
|
||||
209,Spark,2,13,65,20,100,0,10,2,7,30,1,4,5
|
||||
210,Fury Cutter,2,7,10,20,95,0,10,2,120,,1,17,7
|
||||
210,Fury Cutter,2,7,20,20,95,0,10,2,120,,1,17,7
|
||||
211,Steel Wing,2,9,70,25,90,0,10,2,139,10,1,12,5
|
||||
212,Mean Look,2,1,0,5,,0,10,1,107,,2,18,10
|
||||
213,Attract,2,1,0,15,100,0,10,1,121,,3,18,19
|
||||
|
@ -246,12 +246,12 @@ id,name,generation_id,type_id,power,pp,accuracy,priority,target_id,damage_class_
|
|||
245,ExtremeSpeed,2,1,80,5,100,2,10,2,104,,1,30,1
|
||||
246,AncientPower,2,6,60,5,100,0,10,3,141,10,5,32,18
|
||||
247,Shadow Ball,2,8,80,15,100,0,10,3,73,20,4,21,17
|
||||
248,Future Sight,2,14,80,15,90,0,10,3,149,,4,24,17
|
||||
248,Future Sight,2,14,100,10,100,0,10,3,149,,4,24,17
|
||||
249,Rock Smash,2,2,40,15,100,0,10,2,70,50,5,29,18
|
||||
250,Whirlpool,2,11,15,15,70,0,10,3,262,100,2,24,21
|
||||
251,Beat Up,2,17,10,10,100,0,10,2,155,,4,14,7
|
||||
250,Whirlpool,2,11,35,15,85,0,10,3,262,100,2,24,21
|
||||
251,Beat Up,2,17,1,10,100,0,10,2,155,,4,14,7
|
||||
252,Fake Out,3,1,40,10,100,3,10,2,159,100,3,23,17
|
||||
253,Uproar,3,1,50,10,100,0,8,3,160,,3,21,10
|
||||
253,Uproar,3,1,90,10,100,0,8,3,160,,3,21,10
|
||||
254,Stockpile,3,1,0,20,,0,7,1,161,,5,16,11
|
||||
255,Spit Up,3,1,1,10,100,0,10,3,162,,5,1,18
|
||||
256,Swallow,3,1,0,10,,0,7,1,163,,5,32,8
|
||||
|
@ -326,12 +326,12 @@ id,name,generation_id,type_id,power,pp,accuracy,priority,target_id,damage_class_
|
|||
325,Shadow Punch,3,8,60,20,,0,10,2,18,,4,27,17
|
||||
326,Extrasensory,3,14,80,30,100,0,10,3,32,10,1,4,17
|
||||
327,Sky Uppercut,3,2,85,15,90,0,10,2,208,,1,23,17
|
||||
328,Sand Tomb,3,5,15,15,70,0,10,2,43,100,4,24,21
|
||||
328,Sand Tomb,3,5,35,15,85,0,10,2,43,100,4,24,21
|
||||
329,Sheer Cold,3,15,1,5,30,0,10,3,39,,2,14,9
|
||||
330,Muddy Water,3,11,95,10,85,0,11,3,74,30,5,10,18
|
||||
331,Bullet Seed,3,12,10,30,100,0,10,2,30,,1,14,7
|
||||
331,Bullet Seed,3,12,25,30,100,0,10,2,30,,1,14,7
|
||||
332,Aerial Ace,3,3,60,20,,0,10,2,18,,1,27,17
|
||||
333,Icicle Spear,3,15,10,30,100,0,10,2,30,,2,23,7
|
||||
333,Icicle Spear,3,15,25,30,100,0,10,2,30,,2,23,7
|
||||
334,Iron Defense,3,9,0,15,,0,7,1,52,,5,15,13
|
||||
335,Block,3,1,0,5,,0,10,1,107,,3,18,13
|
||||
336,Howl,3,1,0,40,,0,7,1,11,,1,32,11
|
||||
|
@ -341,17 +341,17 @@ id,name,generation_id,type_id,power,pp,accuracy,priority,target_id,damage_class_
|
|||
340,Bounce,3,3,85,5,85,0,10,2,264,30,3,15,6
|
||||
341,Mud Shot,3,5,55,15,95,0,10,3,71,100,5,5,2
|
||||
342,Poison Tail,3,4,50,25,100,0,10,2,210,10,4,33,4
|
||||
343,Covet,3,1,40,40,100,0,10,2,106,,3,20,12
|
||||
343,Covet,3,1,60,40,100,0,10,2,106,,3,20,12
|
||||
344,Volt Tackle,3,13,120,15,100,0,10,2,263,10,1,3,22
|
||||
345,Magical Leaf,3,12,60,20,,0,10,3,18,,2,27,17
|
||||
346,Water Sport,3,11,0,15,,0,12,1,211,,3,1,13
|
||||
347,Calm Mind,3,14,0,20,,0,7,1,212,,4,16,11
|
||||
348,Leaf Blade,3,12,90,15,100,0,10,2,44,,1,2,17
|
||||
349,Dragon Dance,3,16,0,20,,0,7,1,213,,1,32,11
|
||||
350,Rock Blast,3,6,25,10,80,0,10,2,30,,5,12,7
|
||||
350,Rock Blast,3,6,25,10,90,0,10,2,30,,5,12,7
|
||||
351,Shock Wave,3,13,60,20,,0,10,3,18,,1,27,17
|
||||
352,Water Pulse,3,11,60,20,100,0,10,3,77,20,2,21,17
|
||||
353,Doom Desire,3,9,120,5,85,0,10,3,149,,1,24,17
|
||||
353,Doom Desire,3,9,140,5,100,0,10,3,149,,1,24,17
|
||||
354,Psycho Boost,3,14,140,5,90,0,10,3,205,100,4,3,22
|
||||
355,Roost,4,3,0,10,,0,7,1,215,,1,,8
|
||||
356,Gravity,4,14,0,5,,0,12,1,216,,2,,13
|
||||
|
@ -380,12 +380,12 @@ id,name,generation_id,type_id,power,pp,accuracy,priority,target_id,damage_class_
|
|||
379,Power Trick,4,14,0,10,,0,7,1,239,,1,,16
|
||||
380,Gastro Acid,4,4,0,10,100,0,10,1,240,,2,,13
|
||||
381,Lucky Chant,4,1,0,30,,0,4,1,241,,3,,13
|
||||
382,Me First,4,1,0,20,,0,2,1,242,,3,,1
|
||||
382,Me First,4,1,1,20,,0,2,1,242,,3,,1
|
||||
383,Copycat,4,1,0,20,,0,7,1,243,,1,,12
|
||||
384,Power Swap,4,14,0,10,,0,10,1,244,,2,,16
|
||||
385,Guard Swap,4,14,0,10,,0,10,1,245,,3,,16
|
||||
386,Punishment,4,17,60,5,100,0,10,2,246,,4,,23
|
||||
387,Last Resort,4,1,130,5,100,0,10,2,247,,3,,21
|
||||
386,Punishment,4,17,1,5,100,0,10,2,246,,4,,23
|
||||
387,Last Resort,4,1,140,5,100,0,10,2,247,,3,,21
|
||||
388,Worry Seed,4,12,0,10,100,0,10,1,248,,2,,19
|
||||
389,Sucker Punch,4,17,80,5,100,1,10,2,249,,4,,1
|
||||
390,Toxic Spikes,4,4,0,20,,0,6,1,250,,4,,13
|
||||
|
@ -407,7 +407,7 @@ id,name,generation_id,type_id,power,pp,accuracy,priority,target_id,damage_class_
|
|||
406,Dragon Pulse,4,16,90,10,100,0,10,3,1,,4,,4
|
||||
407,Dragon Rush,4,16,100,10,75,0,10,2,32,20,1,,18
|
||||
408,Power Gem,4,6,70,20,100,0,10,3,1,,2,,5
|
||||
409,Drain Punch,4,2,60,5,100,0,10,2,4,,2,,20
|
||||
409,Drain Punch,4,2,75,10,100,0,10,2,4,,2,,20
|
||||
410,Vacuum Wave,4,2,40,30,100,1,10,3,104,,4,,1
|
||||
411,Focus Blast,4,2,120,5,70,0,10,3,73,10,1,,17
|
||||
412,Energy Ball,4,12,80,10,100,0,10,3,73,10,2,,17
|
||||
|
@ -461,7 +461,7 @@ id,name,generation_id,type_id,power,pp,accuracy,priority,target_id,damage_class_
|
|||
460,Spacial Rend,4,16,100,5,95,0,10,3,44,,5,,4
|
||||
461,Lunar Dance,4,14,0,10,,0,7,1,271,,2,,8
|
||||
462,Crush Grip,4,1,1,5,100,0,10,2,238,,5,,15
|
||||
463,Magma Storm,4,10,120,5,70,0,10,3,43,100,5,,7
|
||||
463,Magma Storm,4,10,120,5,75,0,10,3,43,100,5,,7
|
||||
464,Dark Void,4,17,0,10,80,0,11,1,2,,4,,19
|
||||
465,Seed Flare,4,12,120,5,85,0,10,3,272,40,1,,22
|
||||
466,Ominous Wind,4,8,60,5,100,0,10,3,141,10,4,,11
|
||||
|
|
|
|
@ -672,6 +672,20 @@ class Move(TableBase):
|
|||
super_contest_effect_id = Column(Integer, ForeignKey('super_contest_effects.id'), nullable=True,
|
||||
info=dict(description="ID of the move's Super Contest effect"))
|
||||
|
||||
class MoveChangelog(TableBase):
|
||||
"""History of changes to moves across main game versions."""
|
||||
__tablename__ = 'move_changelog'
|
||||
move_id = Column(Integer, ForeignKey('moves.id'), primary_key=True, nullable=False,
|
||||
info=dict(description="ID of the move that changed"))
|
||||
changed_in_version_group_id = Column(Integer, ForeignKey('version_groups.id'), primary_key=True, nullable=False,
|
||||
info=dict(description="ID of the version group in which the move changed"))
|
||||
power = Column(SmallInteger, nullable=True,
|
||||
info=dict(description="Prior base power of the move, or NULL if unchanged"))
|
||||
pp = Column(SmallInteger, nullable=True,
|
||||
info=dict(description="Prior base PP of the move, or NULL if unchanged"))
|
||||
accuracy = Column(SmallInteger, nullable=True,
|
||||
info=dict(description="Prior accuracy of the move, or NULL if unchanged"))
|
||||
|
||||
class Nature(TableBase):
|
||||
u"""A nature a pokémon can have, such as Calm or Brave
|
||||
"""
|
||||
|
@ -1351,6 +1365,10 @@ LocationInternalID.generation = relation(Generation)
|
|||
Machine.item = relation(Item)
|
||||
Machine.version_group = relation(VersionGroup)
|
||||
|
||||
Move.changelog = relation(MoveChangelog,
|
||||
order_by=MoveChangelog.changed_in_version_group_id.asc(),
|
||||
backref='move',
|
||||
)
|
||||
Move.contest_effect = relation(ContestEffect, backref='moves')
|
||||
Move.contest_combo_next = association_proxy('contest_combo_first', 'second')
|
||||
Move.contest_combo_prev = association_proxy('contest_combo_second', 'first')
|
||||
|
@ -1372,6 +1390,8 @@ Move.type = relation(Type, backref='moves')
|
|||
Move.effect = markdown.MoveEffectProperty('effect')
|
||||
Move.short_effect = markdown.MoveEffectProperty('short_effect')
|
||||
|
||||
MoveChangelog.changed_in = relation(VersionGroup, backref='move_changelog')
|
||||
|
||||
MoveEffect.category_map = relation(MoveEffectCategoryMap)
|
||||
MoveEffect.categories = association_proxy('category_map', 'category')
|
||||
MoveEffectCategoryMap.category = relation(MoveEffectCategory)
|
||||
|
|
Loading…
Reference in a new issue