19 lines
715 B
MySQL
19 lines
715 B
MySQL
|
|
-- Create sessions table
|
||
|
|
CREATE TABLE IF NOT EXISTS sessions (
|
||
|
|
id UUID PRIMARY KEY,
|
||
|
|
user_id UUID NOT NULL,
|
||
|
|
token_hash VARCHAR(64) NOT NULL UNIQUE,
|
||
|
|
ip_address VARCHAR(45),
|
||
|
|
user_agent TEXT,
|
||
|
|
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
|
||
|
|
expires_at TIMESTAMP WITH TIME ZONE NOT NULL,
|
||
|
|
revoked_at TIMESTAMP WITH TIME ZONE,
|
||
|
|
|
||
|
|
CONSTRAINT fk_sessions_users FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
|
||
|
|
);
|
||
|
|
|
||
|
|
-- Index for faster lookups/cleanup
|
||
|
|
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);
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_sessions_revoked_at ON sessions(revoked_at);
|