generated from nholtware/service-template-express
26 lines
823 B
SQL
26 lines
823 B
SQL
-- Up Migration
|
|
CREATE TABLE users (
|
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
username TEXT NOT NULL,
|
|
password_hash TEXT NOT NULL,
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT now()
|
|
);
|
|
CREATE UNIQUE INDEX users_username_lower_idx ON users (lower(username));
|
|
|
|
-- NULL owner = legacy story from before accounts existed: readable if
|
|
-- published, but editable by nobody.
|
|
ALTER TABLE stories ADD COLUMN owner_id UUID REFERENCES users(id) ON DELETE CASCADE;
|
|
CREATE INDEX stories_owner_idx ON stories (owner_id, updated_at DESC);
|
|
|
|
CREATE TABLE sessions (
|
|
sid TEXT PRIMARY KEY,
|
|
sess JSONB NOT NULL,
|
|
expire TIMESTAMPTZ NOT NULL
|
|
);
|
|
CREATE INDEX sessions_expire_idx ON sessions (expire);
|
|
|
|
-- Down Migration
|
|
DROP TABLE sessions;
|
|
DROP INDEX stories_owner_idx;
|
|
ALTER TABLE stories DROP COLUMN owner_id;
|
|
DROP TABLE users;
|