19 lines
578 B
SQL
19 lines
578 B
SQL
-- +goose Up
|
|
CREATE TABLE IF NOT EXISTS audit_log (
|
|
id TEXT PRIMARY KEY,
|
|
occurred_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
user_id TEXT REFERENCES user(id) ON DELETE SET NULL,
|
|
action TEXT NOT NULL,
|
|
resource_type TEXT,
|
|
resource_id TEXT,
|
|
ip TEXT,
|
|
user_agent TEXT,
|
|
metadata_json TEXT
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_audit_log_user_id_occurred_at ON audit_log(user_id, occurred_at DESC);
|
|
CREATE INDEX IF NOT EXISTS idx_audit_log_action_occurred_at ON audit_log(action, occurred_at DESC);
|
|
|
|
-- +goose Down
|
|
DROP TABLE IF EXISTS audit_log;
|