HN-like selfhosted forums

Code git clone ssh://git.poy.ooo:6969/~rii/district ZIP
store/migrations/0001_users_posts.sql / 1KiB #04bfecf6
Raw
-- +goose UpCREATE TABLE IF NOT EXISTS users (    id          UUID        PRIMARY KEY DEFAULT uuidv7(),    username    TEXT        NOT NULL UNIQUE,    email       TEXT        NOT NULL UNIQUE,    passwd_hash TEXT        NOT NULL,              -- Argon2id is text    created_at  TIMESTAMPTZ NOT NULL DEFAULT NOW(),    deleted_at  TIMESTAMPTZ,    CONSTRAINT username_length CHECK (        char_length(username) >= 3 AND char_length(username) <= 24    ));-- This makes josh, JOSH, JoSh, JOsh resolve to the same thingCREATE UNIQUE INDEX users_username_lower_idx    ON users (lower(username));CREATE TABLE IF NOT EXISTS posts (    id          BIGSERIAL   PRIMARY KEY,    author_id   UUID        NOT NULL REFERENCES users(id),    title       TEXT        NOT NULL,    embed_url   TEXT        NOT NULL DEFAULT '',    body        TEXT        NOT NULL,    created_at  TIMESTAMPTZ NOT NULL DEFAULT NOW(),    deleted_at  TIMESTAMPTZ);-- +goose DownDROP TABLE posts;DROP INDEX users_username_lower_idx;DROP TABLE users;