Files
platforms/backend/api/cmd/cli/device_group_migration.go
czl231 3ef33b531d 已完成用户APP首期功能开发
交付用户端首期页面、配套接口、后台资源及测试文档。用户APP构建、静态分析和三个管理后台构建通过;完整测试仍有2项失败,后端模型注释检查未通过,详见交付记录。
2026-09-13 00:57:32 +08:00

38 lines
2.5 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// 功能独立创建用户设备分组表及产品归组字段不迁移其他业务表版本1.0.0。
package main
// migrateDeviceGroups 创建分组资料并补充产品归组字段,重复执行不清空现有数据。
func migrateDeviceGroups() error {
return migrateClientColumns([]string{
`CREATE TABLE IF NOT EXISTS user_device_group (
id bigserial PRIMARY KEY,
identity varchar(36) NOT NULL UNIQUE,
created_at timestamptz NOT NULL,
updated_at timestamptz NOT NULL,
deleted_at timestamptz,
status integer NOT NULL DEFAULT 1 CHECK (status IN (1,3)),
user_account_id bigint NOT NULL REFERENCES user_account(id),
name varchar(32) NOT NULL,
request_no varchar(36) NOT NULL,
sort_no integer NOT NULL DEFAULT 0,
UNIQUE(user_account_id, request_no)
)`,
`COMMENT ON TABLE user_device_group IS '用户本人设备展示分组;不授予设备控制、共享或物联网权限'`,
`COMMENT ON COLUMN user_device_group.id IS '数据库自增内部主键'`,
`COMMENT ON COLUMN user_device_group.identity IS '对外业务UUID标识'`,
`COMMENT ON COLUMN user_device_group.created_at IS '分组创建时间'`,
`COMMENT ON COLUMN user_device_group.updated_at IS '分组最后修改时间'`,
`COMMENT ON COLUMN user_device_group.deleted_at IS '软删除时间;当前删除操作使用状态归档'`,
`COMMENT ON COLUMN user_device_group.status IS '状态1=启用3=已归档'`,
`COMMENT ON COLUMN user_device_group.user_account_id IS '分组所属用户内部主键,仅本人可读写'`,
`COMMENT ON COLUMN user_device_group.name IS '用户自定义分组名称最多32字'`,
`COMMENT ON COLUMN user_device_group.request_no IS '客户端新增请求UUID同一用户内唯一且归档后不复用'`,
`COMMENT ON COLUMN user_device_group.sort_no IS '同一用户内显示顺序,数值越小越靠前'`,
`CREATE UNIQUE INDEX IF NOT EXISTS idx_device_group_active_name ON user_device_group(user_account_id,name) WHERE status=1 AND deleted_at IS NULL`,
`CREATE INDEX IF NOT EXISTS idx_device_group_user_sort ON user_device_group(user_account_id,status,sort_no,id)`,
`ALTER TABLE product_info ADD COLUMN IF NOT EXISTS device_group_id bigint NOT NULL DEFAULT 0`,
`COMMENT ON COLUMN product_info.device_group_id IS '当前用户设备分组内部主键0表示未分组产品归属变化时必须清空'`,
`CREATE INDEX IF NOT EXISTS idx_product_device_group ON product_info(user_account_id,device_group_id) WHERE device_group_id <> 0`,
})
}