38 lines
1.5 KiB
SQL
38 lines
1.5 KiB
SQL
-- MySQL schema for PLBA tracing.
|
|
-- Guarantees compatibility with TraceService levels: INFO, WARNING, ERROR.
|
|
|
|
CREATE TABLE IF NOT EXISTS trace_contexts (
|
|
trace_id VARCHAR(64) PRIMARY KEY,
|
|
parent_id VARCHAR(64) NULL,
|
|
alias VARCHAR(255) NOT NULL,
|
|
type VARCHAR(64) NULL,
|
|
event_time DATETIME(6) NOT NULL,
|
|
attrs_json JSON NOT NULL,
|
|
KEY idx_trace_contexts_parent_id (parent_id),
|
|
CONSTRAINT fk_trace_contexts_parent
|
|
FOREIGN KEY (parent_id) REFERENCES trace_contexts(trace_id)
|
|
ON DELETE SET NULL
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
CREATE TABLE IF NOT EXISTS trace_messages (
|
|
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
trace_id VARCHAR(64) NOT NULL,
|
|
event_time DATETIME(6) NOT NULL,
|
|
step VARCHAR(128) NOT NULL,
|
|
status VARCHAR(64) NOT NULL,
|
|
level ENUM('INFO', 'WARNING', 'ERROR') NOT NULL,
|
|
message TEXT NOT NULL,
|
|
attrs_json JSON NOT NULL,
|
|
KEY idx_trace_messages_trace_id (trace_id),
|
|
KEY idx_trace_messages_event_time (event_time),
|
|
KEY idx_trace_messages_level (level),
|
|
CONSTRAINT fk_trace_messages_context
|
|
FOREIGN KEY (trace_id) REFERENCES trace_contexts(trace_id)
|
|
ON DELETE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
-- Migration for existing installations.
|
|
-- If your `trace_messages.level` does not include WARNING, run this ALTER.
|
|
ALTER TABLE trace_messages
|
|
MODIFY COLUMN level ENUM('INFO', 'WARNING', 'ERROR') NOT NULL;
|