turash/bugulma/backend/migrations/postgres/018_create_activity_logs_table.up.sql

32 lines
1.3 KiB
SQL
Executable File

-- Create activity logging table
-- Migration: 018_create_activity_logs_table.up.sql
-- Activity logs table
CREATE TABLE IF NOT EXISTS activity_logs (
id TEXT PRIMARY KEY,
user_id TEXT NOT NULL,
action VARCHAR(50) NOT NULL,
target_type VARCHAR(50) NOT NULL,
target_id TEXT NOT NULL,
metadata JSONB,
ip_address VARCHAR(45),
user_agent TEXT,
timestamp TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW()
);
-- Create indexes for activity_logs
CREATE INDEX IF NOT EXISTS idx_activity_logs_user_id ON activity_logs(user_id);
CREATE INDEX IF NOT EXISTS idx_activity_logs_action ON activity_logs(action);
CREATE INDEX IF NOT EXISTS idx_activity_logs_target_type ON activity_logs(target_type);
CREATE INDEX IF NOT EXISTS idx_activity_logs_target_id ON activity_logs(target_id);
CREATE INDEX IF NOT EXISTS idx_activity_logs_timestamp ON activity_logs(timestamp);
-- Composite index for common queries
CREATE INDEX IF NOT EXISTS idx_activity_logs_user_timestamp ON activity_logs(user_id, timestamp DESC);
CREATE INDEX IF NOT EXISTS idx_activity_logs_target ON activity_logs(target_type, target_id, timestamp DESC);
-- Add foreign key constraint
ALTER TABLE activity_logs ADD CONSTRAINT fk_activity_logs_user
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE;