iloom-flatten/migrations/20260604_143738_create_audit_logs_table.sql

32 lines
1.2 KiB
MySQL
Raw Permalink Normal View History

-- ============================================
-- 此文件由 Meoo Cloud 自动生成,请勿修改
-- This file is auto-generated by Meoo Cloud, DO NOT MODIFY
-- ============================================
CREATE TABLE IF NOT EXISTS data_audit_logs (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
table_name TEXT NOT NULL,
record_id UUID NOT NULL,
operation TEXT NOT NULL CHECK (operation IN ('INSERT', 'UPDATE', 'DELETE')),
old_values JSONB,
new_values JSONB,
changed_by UUID REFERENCES auth.users(id),
changed_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
validation_passed BOOLEAN NOT NULL DEFAULT TRUE,
error_message TEXT
);
CREATE INDEX IF NOT EXISTS idx_audit_logs_table_record ON data_audit_logs(table_name, record_id);
CREATE INDEX IF NOT EXISTS idx_audit_logs_changed_at ON data_audit_logs(changed_at DESC);
CREATE INDEX IF NOT EXISTS idx_audit_logs_validation ON data_audit_logs(validation_passed) WHERE validation_passed = FALSE;
ALTER TABLE data_audit_logs ENABLE ROW LEVEL SECURITY;
CREATE POLICY admin_select_audit_logs ON data_audit_logs
FOR SELECT USING (true);
CREATE POLICY system_insert_audit_logs ON data_audit_logs
FOR INSERT WITH CHECK (true);