39 lines
1.1 KiB
Perl
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;
|