added schema.sql file

This commit is contained in:
r8zavetr8v 2024-10-02 23:59:28 +03:00
parent c7156f7aab
commit 911a827308
4 changed files with 76 additions and 68 deletions

View File

@ -1,29 +0,0 @@
-- +goose Up
-- +goose StatementBegin
SELECT 'up SQL query';
CREATE TABLE IF NOT EXISTS users (
id bigserial PRIMARY KEY
, username TEXT DEFAULT NULL
, login TEXT NOT NULL UNIQUE
, PASSWORD bytea NOT NULL
, created_at timestamptz DEFAULT current_timestamp
, updated_at timestamptz DEFAULT current_timestamp
);
ALTER TABLE users ADD CONSTRAINT users_username_len CHECK(length(username) > 250) NOT VALID;
ALTER TABLE users ADD CONSTRAINT users_login_len CHECK(length(username) > 250) NOT VALID;
CREATE INDEX CONCURRENTLY idx_users_login ON
users (login);
CREATE INDEX CONCURRENTLY idx_users_username ON
users (username);
-- +goose StatementEnd
-- +goose Down
-- +goose StatementBegin
SELECT 'down SQL query';
DROP INDEX CONCURRENTLY IF EXISTS idx_users_login;
DROP INDEX CONCURRENTLY IF EXISTS idx_users_username;
DROP TABLE IF EXISTS users;
-- +goose StatementEnd

View File

@ -1,26 +0,0 @@
-- +goose Up
-- +goose StatementBegin
SELECT 'up SQL query';
CREATE TABLE sessions (
id bigserial primary key,
session_token varchar(200) not null unique,
csrf_token varchar(200) not null unique,
user_id bigserial references users(id),
created_at timestamp default current_timestamp,
expired_at timestamp not null
);
create index concurrently if not exists idx_sessions_session_token_csrf_token
on sessions (session_token, csrf_token);
-- +goose StatementEnd
-- +goose Down
-- +goose StatementBegin
SELECT 'down SQL query';
drop index concurrently idx_sessions_session_token_csrf_token;
drop table sessions;
-- +goose StatementEnd

View File

@ -1,13 +0,0 @@
-- +goose Up
-- +goose StatementBegin
SELECT 'up SQL query';
create table files_meta (
id bigserial primary key
);
-- +goose StatementEnd
-- +goose Down
-- +goose StatementBegin
SELECT 'down SQL query';
-- +goose StatementEnd

76
schema.sql Normal file
View File

@ -0,0 +1,76 @@
-- Users as auth data
create table if not exists users (
id bigserial primary key,
username text default null,
login text not null unique,
password bytea not null,
created_at timestamptz default current_timestamp,
updated_at timestamptz default current_timestamp
);
alter table users add constraint users_username_len check(length(username) > 250) not valid;
alter table users add constraint users_login_len check(length(username) > 250) not valid;
create index idx_users_login on users (login);
create index idx_users_username on users (username);
-- Sessions and auth data
create table sessions (
id bigserial primary key,
session_token varchar(200) not null unique,
csrf_token varchar(200) not null unique,
user_id bigserial references users(id),
created_at timestamp default current_timestamp,
expired_at timestamp not null
);
create index if not exists idx_sessions_session_token_csrf_token on sessions (session_token, csrf_token);
-- Files
create table files_metadata (
id bigserial primary key,
name text not null,
fslink text not null,
size bigint not null,
ext text not null,
owner_id bigint not null,
parent_dir bigint not null,
created_at timestamptz default current_timestamp,
updated_at timestamptz default null,
deleted_at timestamptz default null
);
create index idx_fm_owner_id on files_metadata(owner_id);
create index idx_fm_owner_id_parent_dir on files_metadata(owner_id, parent_dir);
create table directories (
id bigserial primary key,
name text not null,
owner_id bigint not null,
parent_dir bigint not null,
created_at timestamptz default current_timestamp,
updated_at timestamptz default null,
deleted_at timestamptz default null
);
create index idx_directories_owner_id_parent_dir on directories(owner_id, parent_dir);
create table directory_users_access (
id bigserial primary key,
dir_id bigint not null,
user_id bigint not null,
assess_flag integer,
created_at timestamptz default current_timestamp,
updated_at timestamptz default null
);
create index idx_dua_owner_id_parent_dir on directories(owner_id, parent_dir);