mirror of
https://github.com/SamyRai/turash.git
synced 2025-12-26 23:01:33 +00:00
32 lines
1.3 KiB
SQL
Executable File
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;
|
|
|