Added original migrations
ci/woodpecker/push/rustfmt Pipeline failed Details
ci/woodpecker/push/test Pipeline was successful Details

dev
Jef Roosens 2022-01-02 21:07:29 +01:00
parent 5947ddb91c
commit 1569aaa760
Signed by: Jef Roosens
GPG Key ID: B580B976584B5F30
3 changed files with 48 additions and 0 deletions

View File

@ -0,0 +1,3 @@
-- This file should undo anything in `up.sql`
drop table refresh_tokens cascade;
drop table users cascade;

View File

@ -0,0 +1,20 @@
CREATE TABLE users (
id uuid DEFAULT gen_random_uuid() PRIMARY KEY,
username varchar(32) UNIQUE NOT NULL,
-- Hashed + salted representation of the username
password text NOT NULL,
-- Wether the user is currently blocked
blocked boolean NOT NULL DEFAULT false
);
CREATE TABLE refresh_tokens (
-- This is more efficient than storing the text
token bytea PRIMARY KEY,
-- The user for whom the token was created
user_id uuid NOT NULL REFERENCES users(id) ON DELETE CASCADE,
-- When the token expires
expires_at timestamp NOT NULL,
-- When the token was last used (is NULL until used)
last_used_at timestamp
);

25
src/schema.rs 100644
View File

@ -0,0 +1,25 @@
table! {
refresh_tokens (token) {
token -> Bytea,
user_id -> Uuid,
expires_at -> Timestamp,
last_used_at -> Nullable<Timestamp>,
}
}
table! {
users (id) {
id -> Uuid,
username -> Varchar,
password -> Text,
blocked -> Bool,
admin -> Bool,
}
}
joinable!(refresh_tokens -> users (user_id));
allow_tables_to_appear_in_same_query!(
refresh_tokens,
users,
);