package MyRedland::DB::Migrations; use v5.34.1; use strict; use warnings; sub MIGRATIONS { return ( 'CREATE TABLE options ( name TEXT PRIMARY KEY, value TEXT )', 'CREATE EXTENSION IF NOT EXISTS "uuid-ossp"', 'CREATE TABLE bots ( -- Id is a unique identifier whose format varies from server type to server type. id TEXT NOT NULL PRIMARY KEY, type TEXT NOT NULL, data jsonb DEFAULT \'{}\'::jsonb )', 'CREATE TABLE parties ( uuid UUID NOT NULL DEFAULT uuid_generate_v4() PRIMARY KEY, name TEXT NULL UNIQUE, data jsonb DEFAULT \'{}\'::jsonb )', 'CREATE TABLE players ( uuid UUID NOT NULL DEFAULT uuid_generate_v4() PRIMARY KEY, username TEXT NOT NULL, bot_id TEXT NOT NULL, party_uuid UUID NULL, data jsonb DEFAULT \'{}\'::jsonb, FOREIGN KEY(bot_id) REFERENCES bots(id), FOREIGN KEY(party_uuid) REFERENCES parties(uuid), UNIQUE(username, bot_id) )', ); } 1;