Files
story/migrations/000013_firmware_assignment_progress.up.sql

18 lines
703 B
PL/PgSQL

BEGIN;
ALTER TABLE firmware_assignment DROP CONSTRAINT firmware_assignment_status_check;
UPDATE firmware_assignment SET status=CASE status
WHEN 'PENDING' THEN 'ASSIGNED'
WHEN 'COMMAND_QUEUED' THEN 'ASSIGNED'
WHEN 'SUCCEEDED' THEN 'CONFIRMED'
ELSE status
END;
ALTER TABLE firmware_assignment
ADD COLUMN progress_percent integer CHECK(progress_percent BETWEEN 0 AND 100),
ADD COLUMN last_result jsonb NOT NULL DEFAULT '{}'::jsonb CHECK(jsonb_typeof(last_result)='object'),
ADD COLUMN last_reported_at timestamptz,
ADD CONSTRAINT firmware_assignment_status_check
CHECK(status IN ('ASSIGNED','DOWNLOADING','INSTALLING','CONFIRMED','FAILED','ROLLED_BACK'));
COMMIT;