gear status

master
Denis Ranneft 1 month ago
parent 5373107a03
commit 283b062d08

@ -0,0 +1,168 @@
BEGIN;
CREATE SEQUENCE IF NOT EXISTS public.hero_item_id_seq;
ALTER TABLE public.hero_gear
ADD COLUMN IF NOT EXISTS item_id bigint,
ADD COLUMN IF NOT EXISTS form_id text,
ADD COLUMN IF NOT EXISTS name text,
ADD COLUMN IF NOT EXISTS subtype text,
ADD COLUMN IF NOT EXISTS rarity text,
ADD COLUMN IF NOT EXISTS ilvl integer,
ADD COLUMN IF NOT EXISTS base_primary integer,
ADD COLUMN IF NOT EXISTS primary_stat integer,
ADD COLUMN IF NOT EXISTS stat_type text,
ADD COLUMN IF NOT EXISTS speed_modifier double precision,
ADD COLUMN IF NOT EXISTS crit_chance double precision,
ADD COLUMN IF NOT EXISTS agility_bonus integer,
ADD COLUMN IF NOT EXISTS set_name text,
ADD COLUMN IF NOT EXISTS special_effect text;
ALTER TABLE public.hero_inventory
ADD COLUMN IF NOT EXISTS item_id bigint,
ADD COLUMN IF NOT EXISTS form_id text,
ADD COLUMN IF NOT EXISTS name text,
ADD COLUMN IF NOT EXISTS subtype text,
ADD COLUMN IF NOT EXISTS rarity text,
ADD COLUMN IF NOT EXISTS ilvl integer,
ADD COLUMN IF NOT EXISTS base_primary integer,
ADD COLUMN IF NOT EXISTS primary_stat integer,
ADD COLUMN IF NOT EXISTS stat_type text,
ADD COLUMN IF NOT EXISTS speed_modifier double precision,
ADD COLUMN IF NOT EXISTS crit_chance double precision,
ADD COLUMN IF NOT EXISTS agility_bonus integer,
ADD COLUMN IF NOT EXISTS set_name text,
ADD COLUMN IF NOT EXISTS special_effect text;
UPDATE public.hero_gear
SET item_id = nextval('public.hero_item_id_seq')
WHERE item_id IS NULL;
UPDATE public.hero_inventory
SET item_id = nextval('public.hero_item_id_seq')
WHERE item_id IS NULL;
ALTER TABLE public.hero_gear
ALTER COLUMN item_id SET DEFAULT nextval('public.hero_item_id_seq');
ALTER TABLE public.hero_inventory
ALTER COLUMN item_id SET DEFAULT nextval('public.hero_item_id_seq');
ALTER TABLE public.hero_inventory
DROP CONSTRAINT IF EXISTS hero_inventory_gear_id_key;
ALTER TABLE public.hero_gear
ADD CONSTRAINT hero_gear_item_id_key UNIQUE (item_id);
ALTER TABLE public.hero_inventory
ADD CONSTRAINT hero_inventory_item_id_key UNIQUE (item_id);
WITH canonical AS (
SELECT DISTINCT ON (slot, name, form_id, subtype)
id, slot, name, form_id, subtype
FROM gear
WHERE id <= 2317
ORDER BY slot, name, form_id, subtype, id
)
UPDATE public.hero_gear hg
SET form_id = g.form_id,
name = g.name,
subtype = g.subtype,
rarity = g.rarity,
ilvl = g.ilvl,
base_primary = g.base_primary,
primary_stat = g.primary_stat,
stat_type = g.stat_type,
speed_modifier = g.speed_modifier,
crit_chance = g.crit_chance,
agility_bonus = g.agility_bonus,
set_name = g.set_name,
special_effect = g.special_effect,
gear_id = c.id
FROM gear g
JOIN canonical c ON c.slot = g.slot AND c.name = g.name AND c.form_id = g.form_id AND c.subtype = g.subtype
WHERE hg.gear_id = g.id;
WITH fallback AS (
SELECT DISTINCT ON (slot, name)
id, slot, name
FROM gear
WHERE id <= 2317
ORDER BY slot, name, id
)
UPDATE public.hero_gear hg
SET form_id = g.form_id,
name = g.name,
subtype = g.subtype,
rarity = g.rarity,
ilvl = g.ilvl,
base_primary = g.base_primary,
primary_stat = g.primary_stat,
stat_type = g.stat_type,
speed_modifier = g.speed_modifier,
crit_chance = g.crit_chance,
agility_bonus = g.agility_bonus,
set_name = g.set_name,
special_effect = g.special_effect,
gear_id = f.id
FROM gear g
JOIN fallback f ON f.slot = g.slot AND f.name = g.name
WHERE hg.gear_id = g.id AND hg.gear_id > 2317;
WITH canonical AS (
SELECT DISTINCT ON (slot, name, form_id, subtype)
id, slot, name, form_id, subtype
FROM gear
WHERE id <= 2317
ORDER BY slot, name, form_id, subtype, id
)
UPDATE public.hero_inventory hi
SET form_id = g.form_id,
name = g.name,
subtype = g.subtype,
rarity = g.rarity,
ilvl = g.ilvl,
base_primary = g.base_primary,
primary_stat = g.primary_stat,
stat_type = g.stat_type,
speed_modifier = g.speed_modifier,
crit_chance = g.crit_chance,
agility_bonus = g.agility_bonus,
set_name = g.set_name,
special_effect = g.special_effect,
gear_id = c.id
FROM gear g
JOIN canonical c ON c.slot = g.slot AND c.name = g.name AND c.form_id = g.form_id AND c.subtype = g.subtype
WHERE hi.gear_id = g.id;
WITH fallback AS (
SELECT DISTINCT ON (slot, name)
id, slot, name
FROM gear
WHERE id <= 2317
ORDER BY slot, name, id
)
UPDATE public.hero_inventory hi
SET form_id = g.form_id,
name = g.name,
subtype = g.subtype,
rarity = g.rarity,
ilvl = g.ilvl,
base_primary = g.base_primary,
primary_stat = g.primary_stat,
stat_type = g.stat_type,
speed_modifier = g.speed_modifier,
crit_chance = g.crit_chance,
agility_bonus = g.agility_bonus,
set_name = g.set_name,
special_effect = g.special_effect,
gear_id = f.id
FROM gear g
JOIN fallback f ON f.slot = g.slot AND f.name = g.name
WHERE hi.gear_id = g.id AND hi.gear_id > 2317;
DELETE FROM hero_gear WHERE gear_id > 2317;
DELETE FROM hero_inventory WHERE gear_id > 2317;
DELETE FROM gear WHERE id > 2317;
COMMIT;
Loading…
Cancel
Save