BEGIN; ALTER TABLE device_activation_attempt DROP CONSTRAINT device_activation_attempt_stage_check; ALTER TABLE device_activation_attempt ADD CONSTRAINT device_activation_attempt_stage_check CHECK(stage IN ('SERVER_REGISTER','ENGINE_INIT','SDK_REGISTER','CONVERSATION_TEST')); -- Registration is a physical-device fact and survives changes of owner. ALTER TABLE device_activation_job ADD COLUMN sdk_registered_at timestamptz; UPDATE device_activation_job SET sdk_registered_at=updated_at WHERE provider_secret_ciphertext IS NOT NULL; -- Old config packets use a different contract. Never replay them as 1.1. UPDATE device_activation_job SET config_ciphertext=NULL,config_digest=NULL,config_expires_at=NULL, config_ack_at=NULL,config_version=config_version+1,version=version+1, status=CASE WHEN status='READY' THEN 'REGISTERED_OBSERVED' ELSE status END; DELETE FROM device_onboarding_request WHERE actor_key LIKE 'device:%'; COMMIT;