L3TDE-IRC/lib/L3TDE/DB/Migrations.pm

39 lines
1.1 KiB
Perl

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;