costco-grocery-list/packages/db/migrations/create_sessions_table.sql

15 lines
591 B
SQL

CREATE TABLE IF NOT EXISTS sessions (
id VARCHAR(128) PRIMARY KEY,
user_id INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
expires_at TIMESTAMPTZ NOT NULL,
last_seen_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
user_agent TEXT
);
CREATE INDEX IF NOT EXISTS idx_sessions_user_id ON sessions(user_id);
CREATE INDEX IF NOT EXISTS idx_sessions_expires_at ON sessions(expires_at);
COMMENT ON TABLE sessions IS 'DB-backed application sessions';
COMMENT ON COLUMN sessions.id IS 'Opaque session identifier stored in HttpOnly cookie';