mirror of https://github.com/gabehf/Koito.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
1.1 KiB
53 lines
1.1 KiB
-- +goose Up
|
|
-- +goose StatementBegin
|
|
|
|
CREATE TYPE role AS ENUM ('admin', 'user');
|
|
|
|
CREATE TABLE IF NOT EXISTS users (
|
|
id INT NOT NULL GENERATED ALWAYS AS IDENTITY,
|
|
PRIMARY KEY(id),
|
|
username TEXT NOT NULL UNIQUE,
|
|
password TEXT NOT NULL,
|
|
role role NOT NULL DEFAULT 'user'
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS api_keys (
|
|
id INT NOT NULL GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
|
|
key TEXT NOT NULL UNIQUE,
|
|
user_id INT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
label TEXT
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS release_aliases (
|
|
release_id INT NOT NULL REFERENCES releases(id) ON DELETE CASCADE,
|
|
alias TEXT NOT NULL,
|
|
PRIMARY KEY (release_id, alias),
|
|
source TEXT NOT NULL
|
|
);
|
|
|
|
ALTER TABLE listens
|
|
ADD user_id INT NOT NULL REFERENCES users(id);
|
|
ALTER TABLE listens
|
|
ADD client TEXT;
|
|
|
|
-- +goose StatementEnd
|
|
|
|
-- +goose Down
|
|
-- +goose StatementBegin
|
|
|
|
ALTER TABLE listens
|
|
DROP COLUMN client;
|
|
ALTER TABLE listens
|
|
DROP COLUMN user_id;
|
|
|
|
DROP TABLE IF EXISTS release_aliases;
|
|
|
|
DROP TABLE IF EXISTS api_keys;
|
|
|
|
DROP TABLE IF EXISTS users;
|
|
|
|
DROP TYPE IF EXISTS role;
|
|
|
|
-- +goose StatementEnd
|