remove all migrations, rename schema.sql to a 0_base.sql

This commit is contained in:
Luna 2019-04-03 22:04:59 -03:00
parent 4509ede535
commit 02978542e7
17 changed files with 0 additions and 160 deletions

View File

@ -1,15 +0,0 @@
CREATE TABLE IF NOT EXISTS attachments (
id bigint PRIMARY KEY,
channel_id bigint REFERENCES channels (id),
message_id bigint REFERENCES messages (id),
filename text NOT NULL,
filesize integer,
image boolean DEFAULT FALSE,
-- only not null if image=true
height integer DEFAULT NULL,
width integer DEFAULT NULL
);

View File

@ -1,37 +0,0 @@
-- voice region data
-- NOTE: do NOT remove any rows. use deprectated=true and
-- DELETE FROM voice_servers instead.
CREATE TABLE IF NOT EXISTS voice_regions (
-- always lowercase
id text PRIMARY KEY,
-- "Russia", "Brazil", "Antartica", etc
name text NOT NULL,
-- we don't have the concept of vip guilds yet, but better
-- future proof.
vip boolean DEFAULT FALSE,
deprecated boolean DEFAULT FALSE,
-- we don't have the concept of custom regions too. we don't have the
-- concept of official guilds either, but i'm keeping this in
custom boolean DEFAULT FALSE
);
-- voice server pool. when someone wants to connect to voice, we choose
-- a server that is in the same region the guild is too, and choose the one
-- with the best health value
CREATE TABLE IF NOT EXISTS voice_servers (
-- hostname is a reachable url, e.g "brazil2.example.com"
hostname text PRIMARY KEY,
region_id text REFERENCES voice_regions (id),
-- health values are more thoroughly defined in the LVSP documentation
last_health float default 0.5
);
ALTER TABLE guilds DROP COLUMN IF EXISTS region;
ALTER TABLE guilds ADD COLUMN
region text REFERENCES voice_regions (id);

View File

@ -1,5 +0,0 @@
DROP TABLE guild_features;
DROP TABLE features;
-- this should do the trick
ALTER TABLE guilds ADD COLUMN features text[] NOT NULL DEFAULT '{}';

View File

@ -1,5 +0,0 @@
-- vanity url table, the mapping is 1-1 for guilds and vanity urls
CREATE TABLE IF NOT EXISTS vanity_invites (
guild_id bigint REFERENCES guilds (id) PRIMARY KEY,
code text REFERENCES invites (code) ON DELETE CASCADE
);

View File

@ -1,2 +0,0 @@
ALTER TABLE guilds ADD COLUMN description text DEFAULT NULL;
ALTER TABLE guilds ADD COLUMN banner text DEFAULT NULL;

View File

@ -1,2 +0,0 @@
ALTER TABLE webhooks ALTER COLUMN avatar DROP NOT NULL;
ALTER TABLE webhooks ALTER COLUMN avatar SET DEFAULT NULL;

View File

@ -1,17 +0,0 @@
-- this is a tricky one. blame discord
-- first, remove all messages made by webhooks (safety check)
DELETE FROM messages WHERE author_id is null;
-- delete the column, removing the fkey. no connection anymore.
ALTER TABLE messages DROP COLUMN webhook_id;
-- add a message_webhook_info table. more on that in Storage._inject_author
CREATE TABLE IF NOT EXISTS message_webhook_info (
message_id bigint REFERENCES messages (id) PRIMARY KEY,
webhook_id bigint,
name text DEFAULT '<invalid>',
avatar text DEFAULT NULL
);

View File

@ -1,6 +0,0 @@
-- unused tables
DROP TABLE message_embeds;
DROP TABLE embeds;
ALTER TABLE messages
ADD COLUMN embeds jsonb DEFAULT '[]'

View File

@ -1,35 +0,0 @@
-- new icons table
CREATE TABLE IF NOT EXISTS icons (
scope text NOT NULL,
key text,
hash text UNIQUE NOT NULL,
mime text NOT NULL,
PRIMARY KEY (scope, hash, mime)
);
-- dummy attachments table for now.
CREATE TABLE IF NOT EXISTS attachments (
id bigint NOT NULL,
PRIMARY KEY (id)
);
-- remove the old columns referencing the files table
ALTER TABLE users DROP COLUMN avatar;
ALTER TABLE users ADD COLUMN avatar text REFERENCES icons (hash) DEFAULT NULL;
ALTER TABLE group_dm_channels DROP COLUMN icon;
ALTER TABLE group_dm_channels ADD COLUMN icon text REFERENCES icons (hash);
ALTER TABLE guild_emoji DROP COLUMN image;
ALTER TABLE guild_emoji ADD COLUMN image text REFERENCES icons (hash);
ALTER TABLE guilds DROP COLUMN icon;
ALTER TABLE guilds ADD COLUMN icon text REFERENCES icons (hash) DEFAULT NULL;
-- this one is a change from files to the attachments table
ALTER TABLE message_attachments DROP COLUMN attachment;
ALTER TABLE guild_emoji ADD COLUMN attachment bigint REFERENCES attachments (id);
-- remove files table
DROP TABLE files;

View File

@ -1,9 +0,0 @@
-- drop main primary key
-- since hash can now be nullable
ALTER TABLE icons DROP CONSTRAINT "icons_pkey";
-- remove not null from hash column
ALTER TABLE icons ALTER COLUMN hash DROP NOT NULL;
-- add new primary key, without hash
ALTER TABLE icons ADD CONSTRAINT icons_pkey PRIMARY KEY (scope, key);

View File

@ -1,8 +0,0 @@
CREATE TABLE IF NOT EXISTS instance_invites (
code text PRIMARY KEY,
created_at timestamp without time zone default (now() at time zone 'utc'),
uses bigint DEFAULT 0,
max_uses bigint DEFAULT -1
);

View File

@ -1 +0,0 @@
ALTER TABLE messages ADD COLUMN guild_id bigint REFERENCES guilds (id) ON DELETE CASCADE;

View File

@ -1,5 +0,0 @@
-- require_colons seems to be true for all custom emoji.
ALTER TABLE guild_emoji ALTER COLUMN require_colons SET DEFAULT true;
-- retroactively update all other emojis
UPDATE guild_emoji SET require_colons=true;

View File

@ -1,2 +0,0 @@
ALTER TABLE guild_text_channels
ADD COLUMN rate_limit_per_user bigint DEFAULT 0;

View File

@ -1,9 +0,0 @@
-- update roles.color default to 0
ALTER TABLE roles
ALTER COLUMN color SET DEFAULT 0;
-- update all existing guild default roles to
-- color=0
UPDATE roles
SET color = 0
WHERE roles.id = roles.guild_id;

View File

@ -1,2 +0,0 @@
ALTER TABLE users ALTER COLUMN email DROP NOT NULL;
ALTER TABLE users ALTER COLUMN email SET DEFAULT NULL;