mirror of
https://github.com/Mezeporta/Erupe.git
synced 2026-03-22 07:32:32 +01:00
Migration runner wraps each file in its own transaction via db.Begin(). Having an explicit BEGIN/END inside caused 'unexpected transaction status idle'. Other migrations use no transaction wrapper.
67 lines
1.9 KiB
SQL
67 lines
1.9 KiB
SQL
-- Campaign / Event Tent system tables.
|
|
CREATE TABLE IF NOT EXISTS public.campaigns (
|
|
id INTEGER PRIMARY KEY,
|
|
min_hr INTEGER,
|
|
max_hr INTEGER,
|
|
min_sr INTEGER,
|
|
max_sr INTEGER,
|
|
min_gr INTEGER,
|
|
max_gr INTEGER,
|
|
reward_type INTEGER,
|
|
stamps INTEGER,
|
|
receive_type INTEGER,
|
|
background_id INTEGER,
|
|
start_time TIMESTAMP WITH TIME ZONE,
|
|
end_time TIMESTAMP WITH TIME ZONE,
|
|
title TEXT,
|
|
reward TEXT,
|
|
link TEXT,
|
|
code_prefix TEXT
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS public.campaign_categories (
|
|
id SERIAL PRIMARY KEY,
|
|
type INTEGER,
|
|
title TEXT,
|
|
description TEXT
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS public.campaign_category_links (
|
|
id SERIAL PRIMARY KEY,
|
|
campaign_id INTEGER REFERENCES public.campaigns(id) ON DELETE CASCADE,
|
|
category_id INTEGER REFERENCES public.campaign_categories(id) ON DELETE CASCADE
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS public.campaign_rewards (
|
|
id SERIAL PRIMARY KEY,
|
|
campaign_id INTEGER REFERENCES public.campaigns(id) ON DELETE CASCADE,
|
|
item_type INTEGER,
|
|
quantity INTEGER,
|
|
item_id INTEGER
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS public.campaign_rewards_claimed (
|
|
character_id INTEGER REFERENCES public.characters(id) ON DELETE CASCADE,
|
|
reward_id INTEGER REFERENCES public.campaign_rewards(id) ON DELETE CASCADE,
|
|
PRIMARY KEY (character_id, reward_id)
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS public.campaign_state (
|
|
id SERIAL PRIMARY KEY,
|
|
campaign_id INTEGER REFERENCES public.campaigns(id) ON DELETE CASCADE,
|
|
character_id INTEGER REFERENCES public.characters(id) ON DELETE CASCADE,
|
|
code TEXT
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS public.campaign_codes (
|
|
code TEXT PRIMARY KEY,
|
|
campaign_id INTEGER REFERENCES public.campaigns(id) ON DELETE CASCADE,
|
|
multi BOOLEAN NOT NULL DEFAULT FALSE
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS public.campaign_quest (
|
|
campaign_id INTEGER REFERENCES public.campaigns(id) ON DELETE CASCADE,
|
|
character_id INTEGER REFERENCES public.characters(id) ON DELETE CASCADE,
|
|
PRIMARY KEY (campaign_id, character_id)
|
|
);
|