lazyBoy/migrations/028_package_transitions.sql

21 lines
942 B
MySQL
Raw Permalink Normal View History

2026-09-11 02:47:43 +00:00
DROP INDEX tool_bindings_live_package_bot;
CREATE UNIQUE INDEX tool_bindings_live_package_bot
ON tool_bindings(package_row_id, bot_id)
WHERE status IN ('installing', 'ready', 'switching', 'retiring');
CREATE TABLE package_transitions (
id TEXT PRIMARY KEY,
bot_id TEXT NOT NULL,
computer_id TEXT NOT NULL REFERENCES computers(id) ON DELETE CASCADE,
generation INTEGER NOT NULL,
package_id TEXT NOT NULL,
binding_id TEXT NOT NULL REFERENCES tool_bindings(id) ON DELETE CASCADE,
source_id TEXT NOT NULL REFERENCES tool_packages(id) ON DELETE CASCADE,
target_id TEXT NOT NULL REFERENCES tool_packages(id) ON DELETE CASCADE,
retiring JSONB NOT NULL,
status TEXT NOT NULL DEFAULT 'pending',
schemas JSONB,
created_at TIMESTAMPTZ NOT NULL DEFAULT now()
);
CREATE UNIQUE INDEX package_transition_pending
ON package_transitions(bot_id, package_id) WHERE status IN ('pending','cancelling');