feat: leveling system
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
-- 1) Ensure the new table exists
|
||||
CREATE TABLE IF NOT EXISTS levelrewards (
|
||||
guild_id BIGINT NOT NULL,
|
||||
levelreq INT NOT NULL,
|
||||
role BIGINT NOT NULL,
|
||||
PRIMARY KEY (guild_id, levelreq)
|
||||
);
|
||||
|
||||
-- 2) Backfill from legacy columns (only rows that have both values)
|
||||
INSERT INTO levelrewards (guild_id, levelreq, role)
|
||||
SELECT guild_id, levelreq, role
|
||||
FROM levelsettings
|
||||
WHERE role IS NOT NULL
|
||||
AND levelreq IS NOT NULL
|
||||
ON CONFLICT (guild_id, levelreq)
|
||||
DO UPDATE SET role = EXCLUDED.role;
|
||||
|
||||
SELECT
|
||||
(SELECT COUNT(*)
|
||||
FROM levelsettings
|
||||
WHERE role IS NOT NULL AND levelreq IS NOT NULL) AS legacy_reward_rows,
|
||||
(SELECT COUNT(*)
|
||||
FROM levelrewards) AS levelrewards_rows;
|
||||
|
||||
SELECT ls.guild_id, ls.levelreq, ls.role
|
||||
FROM levelsettings ls
|
||||
LEFT JOIN levelrewards lr
|
||||
ON lr.guild_id = ls.guild_id AND lr.levelreq = ls.levelreq
|
||||
WHERE ls.role IS NOT NULL
|
||||
AND ls.levelreq IS NOT NULL
|
||||
AND lr.guild_id IS NULL;
|
||||
Reference in New Issue
Block a user