Files
codex/codex-rs/state/migrations/0026_external_messages.sql
2026-04-12 19:09:48 -07:00

78 lines
1.7 KiB
SQL

ALTER TABLE thread_timers RENAME TO thread_timers_old;
CREATE TABLE thread_timers (
id TEXT PRIMARY KEY,
thread_id TEXT NOT NULL,
source TEXT NOT NULL,
client_id TEXT NOT NULL,
trigger_json TEXT NOT NULL,
content TEXT NOT NULL,
instructions TEXT,
meta_json TEXT NOT NULL,
delivery TEXT NOT NULL,
created_at INTEGER NOT NULL,
next_run_at INTEGER,
last_run_at INTEGER,
pending_run INTEGER NOT NULL
);
INSERT INTO thread_timers (
id,
thread_id,
source,
client_id,
trigger_json,
content,
instructions,
meta_json,
delivery,
created_at,
next_run_at,
last_run_at,
pending_run
)
SELECT
id,
thread_id,
source,
client_id,
trigger_json,
prompt,
NULL,
'{}',
delivery,
created_at,
next_run_at,
last_run_at,
pending_run
FROM thread_timers_old;
DROP TABLE thread_timers_old;
CREATE INDEX idx_thread_timers_thread_created
ON thread_timers(thread_id, created_at, id);
CREATE INDEX idx_thread_timers_thread_pending
ON thread_timers(thread_id, pending_run, created_at, id);
CREATE INDEX idx_thread_timers_thread_next_run
ON thread_timers(thread_id, next_run_at);
CREATE TABLE external_messages (
seq INTEGER PRIMARY KEY,
id TEXT NOT NULL UNIQUE,
thread_id TEXT NOT NULL,
source TEXT NOT NULL,
content TEXT NOT NULL,
instructions TEXT,
meta_json TEXT NOT NULL,
delivery TEXT NOT NULL,
queued_at INTEGER NOT NULL
);
CREATE INDEX external_messages_thread_order_idx
ON external_messages(thread_id, queued_at, seq);
CREATE INDEX external_messages_thread_delivery_order_idx
ON external_messages(thread_id, delivery, queued_at, seq);