Files
banban/talkingq-url/mysql/migrations/20260923_joint_binding.sql
T

25 lines
1.2 KiB
SQL

-- Run once on an existing database before deploying the application.
ALTER TABLE device_settings ADD COLUMN iccid VARCHAR(22) NULL,
ADD UNIQUE KEY uk_device_settings_iccid (iccid);
ALTER TABLE device_bindings ADD COLUMN binding_instance_id CHAR(36) NULL;
UPDATE device_bindings SET binding_instance_id = UUID() WHERE binding_instance_id IS NULL;
ALTER TABLE device_bindings ADD UNIQUE KEY uk_binding_instance (binding_instance_id);
CREATE TABLE IF NOT EXISTS device_binding_operations (
operation_id CHAR(36) NOT NULL PRIMARY KEY,
binding_instance_id CHAR(36) NOT NULL,
device_id VARCHAR(64) NOT NULL,
owner_user_id BIGINT NOT NULL,
action VARCHAR(8) NOT NULL,
iccid VARCHAR(22) NULL,
traffic_status VARCHAR(24) NOT NULL DEFAULT 'pending',
status VARCHAR(24) NOT NULL DEFAULT 'pending',
handoff_attempt INT NOT NULL DEFAULT 0,
handoff_started TINYINT NOT NULL DEFAULT 0,
last_error VARCHAR(64) NULL,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
UNIQUE KEY uk_binding_operation (binding_instance_id, action),
KEY idx_binding_operation_owner (owner_user_id, device_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;