24 lines
1.0 KiB
PL/PgSQL
24 lines
1.0 KiB
PL/PgSQL
BEGIN;
|
|
|
|
WITH transitioned AS (
|
|
UPDATE device d
|
|
SET activation_state='ACTIVE',activation_revision=activation_revision+1,
|
|
activation_reason='license-v51-rollback',activation_updated_at=now(),version=version+1,updated_at=now()
|
|
FROM device_twin dt
|
|
WHERE dt.device_id=d.id AND d.status='registered' AND d.activation_state='PROVISIONING'
|
|
AND d.activation_reason='license-required-v51'
|
|
AND COALESCE(dt.desired_config->>'voice_runtime','legacy_voicechat')='volc_hardware_agent'
|
|
AND EXISTS (SELECT 1 FROM hardware_agent_provider_credential pc WHERE pc.device_id=d.id AND pc.status='ACTIVE')
|
|
RETURNING d.tenant_id,d.id,d.activation_revision
|
|
)
|
|
INSERT INTO device_activation_transition(
|
|
tenant_id,device_id,from_state,to_state,reason,source,actor_type,activation_revision
|
|
)
|
|
SELECT tenant_id,id,'PROVISIONING','ACTIVE','回滚License强制门禁','migration-51-rollback','system',activation_revision
|
|
FROM transitioned;
|
|
|
|
DROP TABLE hardware_agent_license;
|
|
DROP FUNCTION enforce_hardware_license_device_state();
|
|
|
|
COMMIT;
|