20 lines
615 B
SQL
20 lines
615 B
SQL
-- +goose Up
|
|
CREATE TABLE IF NOT EXISTS users (
|
|
id serial NOT NULL,
|
|
username VARCHAR(70) UNIQUE NOT NULL CHECK (length(username) != 0 AND username = lower(username)),
|
|
hashed_password BYTEA NOT NULL CHECK (length(hashed_password) != 0),
|
|
email VARCHAR(70) UNIQUE CHECK (length(email) != 0 AND email = lower(email)),
|
|
expires_at TIMESTAMP NOT NULL,
|
|
created_at TIMESTAMP NOT NULL,
|
|
role INT NOT NULL CHECK (role BETWEEN 0 AND 3),
|
|
PRIMARY KEY (id)
|
|
);
|
|
|
|
CREATE INDEX ON users (id);
|
|
|
|
CREATE INDEX ON users (username);
|
|
|
|
CREATE INDEX ON users (email);
|
|
|
|
-- +goose Down
|
|
DROP TABLE IF EXISTS users; |