// 功能:只扩展产品分类和厂商映射字段,不猜测或改写既有归属;版本:1.0.0。 package main // migrateDeviceMapping 保留历史档案为unknown,非空厂商编号全局唯一。 func migrateDeviceMapping() error { return migrateClientColumns([]string{ `ALTER TABLE product_info ADD COLUMN IF NOT EXISTS device_kind varchar(16) NOT NULL DEFAULT 'unknown', ADD COLUMN IF NOT EXISTS vendor_device_id varchar(16) NOT NULL DEFAULT ''`, `COMMENT ON COLUMN product_info.device_kind IS '设备分类:unknown=未分类,valve=智能阀,alarm=报警器,cylinder=钢瓶;后台明确设置,不按产品名称推断'`, `COMMENT ON COLUMN product_info.vendor_device_id IS '厂商16位十进制设备编号,空表示未建立映射;同一编号仅能关联一份平台档案,不代表在线或可控制'`, `CREATE UNIQUE INDEX IF NOT EXISTS idx_product_vendor_device_id ON product_info(vendor_device_id) WHERE vendor_device_id <> ''`, }) }