changed sql

- added create tables to anonymous block
pull/1/head
Trivernis 5 years ago
parent bf79df08ad
commit bf3be7d129

@ -79,6 +79,15 @@ export class QueryHelper {
this.pool = pgPool; this.pool = pgPool;
} }
/**
* Async init function
*/
public async init() {
await this.pool.connect();
await this.createTables();
await this.updateTableDefinitions();
}
/** /**
* creates all tables needed if a filepath was given with the constructor * creates all tables needed if a filepath was given with the constructor
*/ */

@ -42,8 +42,12 @@ namespace dataaccess {
* Initializes everything that needs to be initialized asynchronous. * Initializes everything that needs to be initialized asynchronous.
*/ */
export async function init() { export async function init() {
await queryHelper.createTables(); try {
await queryHelper.updateTableDefinitions(); await queryHelper.init();
} catch (err) {
globals.logger.error(err.message);
globals.logger.debug(err.stack);
}
} }
/** /**

@ -49,80 +49,83 @@ DO $$ BEGIN
END$$; END$$;
-- create tables -- create tables
DO $$ BEGIN
CREATE TABLE IF NOT EXISTS "user_sessions" ( CREATE TABLE IF NOT EXISTS "user_sessions" (
"sid" varchar NOT NULL, "sid" varchar NOT NULL,
"sess" json NOT NULL, "sess" json NOT NULL,
"expire" timestamp(6) NOT NULL, "expire" timestamp(6) NOT NULL,
PRIMARY KEY ("sid") NOT DEFERRABLE INITIALLY IMMEDIATE PRIMARY KEY ("sid") NOT DEFERRABLE INITIALLY IMMEDIATE
) WITH (OIDS=FALSE); ) WITH (OIDS=FALSE);
CREATE TABLE IF NOT EXISTS users ( CREATE TABLE IF NOT EXISTS users (
id SERIAL PRIMARY KEY, id SERIAL PRIMARY KEY,
name varchar(128) NOT NULL, name varchar(128) NOT NULL,
handle varchar(128) UNIQUE NOT NULL, handle varchar(128) UNIQUE NOT NULL,
password varchar(1024) NOT NULL, password varchar(1024) NOT NULL,
email varchar(128) UNIQUE NOT NULL, email varchar(128) UNIQUE NOT NULL,
greenpoints INTEGER DEFAULT 0, greenpoints INTEGER DEFAULT 0,
joined_at TIMESTAMP DEFAULT now() joined_at TIMESTAMP DEFAULT now()
); );
CREATE TABLE IF NOT EXISTS posts ( CREATE TABLE IF NOT EXISTS posts (
id BIGSERIAL PRIMARY KEY, id BIGSERIAL PRIMARY KEY,
upvotes INTEGER DEFAULT 0, upvotes INTEGER DEFAULT 0,
downvotes INTEGER DEFAULT 0, downvotes INTEGER DEFAULT 0,
created_at TIMESTAMP DEFAULT now(), created_at TIMESTAMP DEFAULT now(),
content text, content text,
author SERIAL REFERENCES users (id) ON DELETE CASCADE, author SERIAL REFERENCES users (id) ON DELETE CASCADE,
type posttype NOT NULL DEFAULT 'MISC' type posttype NOT NULL DEFAULT 'MISC'
); );
CREATE TABLE IF NOT EXISTS votes ( CREATE TABLE IF NOT EXISTS votes (
user_id SERIAL REFERENCES users (id) ON DELETE CASCADE, user_id SERIAL REFERENCES users (id) ON DELETE CASCADE,
item_id BIGSERIAL REFERENCES posts (id) ON DELETE CASCADE, item_id BIGSERIAL REFERENCES posts (id) ON DELETE CASCADE,
vote_type votetype DEFAULT 'DOWNVOTE', vote_type votetype DEFAULT 'DOWNVOTE',
PRIMARY KEY (user_id, item_id) PRIMARY KEY (user_id, item_id)
); );
CREATE TABLE IF NOT EXISTS events ( CREATE TABLE IF NOT EXISTS events (
id BIGSERIAL PRIMARY KEY, id BIGSERIAL PRIMARY KEY,
time TIMESTAMP, time TIMESTAMP,
owner SERIAL REFERENCES users (id) owner SERIAL REFERENCES users (id)
); );
CREATE TABLE IF NOT EXISTS event_members ( CREATE TABLE IF NOT EXISTS event_members (
event BIGSERIAL REFERENCES events (id), event BIGSERIAL REFERENCES events (id),
member SERIAL REFERENCES users (id), member SERIAL REFERENCES users (id),
PRIMARY KEY (event, member) PRIMARY KEY (event, member)
); );
CREATE TABLE IF NOT EXISTS chats ( CREATE TABLE IF NOT EXISTS chats (
id BIGSERIAL PRIMARY KEY id BIGSERIAL PRIMARY KEY
); );
CREATE TABLE IF NOT EXISTS chat_messages ( CREATE TABLE IF NOT EXISTS chat_messages (
chat BIGSERIAL REFERENCES chats (id) ON DELETE CASCADE, chat BIGSERIAL REFERENCES chats (id) ON DELETE CASCADE,
author SERIAL REFERENCES users (id) ON DELETE SET NULL, author SERIAL REFERENCES users (id) ON DELETE SET NULL,
content VARCHAR(1024) NOT NULL, content VARCHAR(1024) NOT NULL,
created_at TIMESTAMP DEFAULT now(), created_at TIMESTAMP DEFAULT now(),
PRIMARY KEY (chat, author, created_at) PRIMARY KEY (chat, author, created_at)
); );
CREATE TABLE IF NOT EXISTS chat_members ( CREATE TABLE IF NOT EXISTS chat_members (
chat BIGSERIAL REFERENCES chats (id) ON DELETE CASCADE, chat BIGSERIAL REFERENCES chats (id) ON DELETE CASCADE,
member SERIAL REFERENCES users (id) ON DELETE CASCADE, member SERIAL REFERENCES users (id) ON DELETE CASCADE,
PRIMARY KEY (chat, member) PRIMARY KEY (chat, member)
); );
CREATE TABLE IF NOT EXISTS user_friends ( CREATE TABLE IF NOT EXISTS user_friends (
user_id SERIAL REFERENCES users (id) ON DELETE CASCADE, user_id SERIAL REFERENCES users (id) ON DELETE CASCADE,
friend_id SERIAL REFERENCES users (id) ON DELETE CASCADE, friend_id SERIAL REFERENCES users (id) ON DELETE CASCADE,
PRIMARY KEY (user_id, friend_id) PRIMARY KEY (user_id, friend_id)
); );
CREATE TABLE IF NOT EXISTS requests ( CREATE TABLE IF NOT EXISTS requests (
sender SERIAL REFERENCES users (id) ON DELETE CASCADE, sender SERIAL REFERENCES users (id) ON DELETE CASCADE,
receiver SERIAL REFERENCES users (id) ON DELETE CASCADE, receiver SERIAL REFERENCES users (id) ON DELETE CASCADE,
type requesttype DEFAULT 'FRIENDREQUEST', type requesttype DEFAULT 'FRIENDREQUEST',
PRIMARY KEY (sender, receiver, type) PRIMARY KEY (sender, receiver, type)
); );
END $$;

Loading…
Cancel
Save