Files
FlowReader/migrations/002_create_sessions.up.sql

22 lines
767 B
SQL

-- Migration: 002_create_sessions
-- Description: Create the sessions table for stateful authentication
CREATE TABLE IF NOT EXISTS sessions (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
user_id UUID NOT NULL REFERENCES users(id) ON DELETE CASCADE,
token VARCHAR(64) NOT NULL UNIQUE,
expires_at TIMESTAMPTZ NOT NULL,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
user_agent TEXT,
ip_address VARCHAR(45)
);
-- Index for token lookup (authentication)
CREATE INDEX IF NOT EXISTS idx_sessions_token ON sessions(token);
-- Index for user_id (session cleanup)
CREATE INDEX IF NOT EXISTS idx_sessions_user_id ON sessions(user_id);
-- Index for expiration cleanup
CREATE INDEX IF NOT EXISTS idx_sessions_expires_at ON sessions(expires_at);