gear status
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…
Reference in New Issue