ALTER TABLE `airmax_devices`
  ADD COLUMN `preferred_vendor` VARCHAR(40) NULL AFTER `port`,
  ADD COLUMN `detected_vendor` VARCHAR(80) NULL AFTER `preferred_vendor`,
  ADD COLUMN `detected_os` VARCHAR(80) NULL AFTER `detected_vendor`,
  ADD COLUMN `detected_protocol` VARCHAR(10) NULL AFTER `detected_os`,
  ADD COLUMN `detected_port` INT NULL AFTER `detected_protocol`,
  ADD COLUMN `detected_mode` VARCHAR(80) NULL AFTER `detected_port`,
  ADD COLUMN `detected_route` VARCHAR(255) NULL AFTER `detected_mode`,
  ADD COLUMN `login_path` VARCHAR(255) NULL AFTER `detected_route`,
  ADD COLUMN `status_path` VARCHAR(255) NULL AFTER `login_path`,
  ADD COLUMN `bridge_path` VARCHAR(255) NULL AFTER `status_path`,
  ADD COLUMN `client_count_method` VARCHAR(80) NULL AFTER `bridge_path`,
  ADD COLUMN `probe_status` VARCHAR(20) NOT NULL DEFAULT 'idle' AFTER `client_count_method`,
  ADD COLUMN `probe_progress` INT NOT NULL DEFAULT 0 AFTER `probe_status`,
  ADD COLUMN `probe_message` VARCHAR(255) NULL AFTER `probe_progress`,
  ADD COLUMN `probe_last_error` TEXT NULL AFTER `probe_message`,
  ADD COLUMN `probe_meta_json` MEDIUMTEXT NULL AFTER `probe_last_error`,
  ADD COLUMN `probe_raw_capture_json` MEDIUMTEXT NULL AFTER `probe_meta_json`,
  ADD COLUMN `probe_locked` TINYINT(1) NOT NULL DEFAULT 0 AFTER `probe_raw_capture_json`,
  ADD COLUMN `probe_last_success_at` DATETIME NULL AFTER `probe_locked`,
  ADD COLUMN `probe_last_error_at` DATETIME NULL AFTER `probe_last_success_at`;
