/* eslint-disable */ /** * 系统操作审计日志:记录全系统的写操作(谁/何时/何角色/动作/目标/方法/路径/结果/IP/耗时)。 * 供系统管理员审计。仅记录状态变更类请求(POST/PUT/DELETE)与登录。 */ exports.up = (pgm) => { pgm.sql(` CREATE TABLE IF NOT EXISTS system_logs ( id BIGSERIAL PRIMARY KEY, ts TIMESTAMPTZ NOT NULL DEFAULT now(), actor_id TEXT, actor_name TEXT, role TEXT, action TEXT NOT NULL, method TEXT NOT NULL, path TEXT NOT NULL, target_id TEXT, status INTEGER, success BOOLEAN, duration_ms INTEGER, ip TEXT, query TEXT, detail JSONB ); CREATE INDEX IF NOT EXISTS idx_system_logs_ts ON system_logs(ts DESC); CREATE INDEX IF NOT EXISTS idx_system_logs_actor ON system_logs(actor_id); CREATE INDEX IF NOT EXISTS idx_system_logs_action ON system_logs(action); `); }; exports.down = (pgm) => { pgm.sql(`DROP TABLE IF EXISTS system_logs;`); };