| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- -- ============================================================
- -- 小程序系统设置 → 版本管理 完整迁移
- -- 日期: 2026-08-20
- -- 幂等: 所有 DDL / DML 均可重复执行
- -- ============================================================
- -- 1) 建业务表 -----------------------------------------
- CREATE TABLE IF NOT EXISTS `sa_mini_program_version` (
- `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '编号',
- `version_no` VARCHAR(32) NOT NULL COMMENT '版本号(如 1.0.0)',
- `version_name` VARCHAR(64) NOT NULL COMMENT '版本名称',
- `platform` VARCHAR(32) NOT NULL COMMENT '平台:wechat/alipay/wechat-h5/wechat-official',
- `channel` VARCHAR(16) NOT NULL DEFAULT 'prod' COMMENT '渠道:dev/test/prod',
- `download_url` VARCHAR(500) NOT NULL COMMENT '下载地址 / 二维码内容',
- `force_update` TINYINT(1) NOT NULL DEFAULT 2 COMMENT '是否强制更新:1是 2否',
- `release_notes` TEXT NULL COMMENT '发布说明',
- `status` TINYINT(1) NOT NULL DEFAULT 1 COMMENT '状态:1启用 2禁用',
- `sort` INT(11) NOT NULL DEFAULT 0 COMMENT '排序',
- `created_by` INT(11) NULL COMMENT '创建者',
- `updated_by` INT(11) NULL COMMENT '更新者',
- `create_time` DATETIME(0) NULL COMMENT '创建时间',
- `update_time` DATETIME(0) NULL COMMENT '更新时间',
- `delete_time` DATETIME(0) NULL COMMENT '删除时间',
- PRIMARY KEY (`id`),
- UNIQUE KEY `uk_version_no` (`version_no`, `platform`, `channel`, `delete_time`),
- KEY `idx_platform_channel` (`platform`, `channel`, `status`),
- KEY `idx_create_time` (`create_time`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='小程序版本管理';
- -- 2) 写菜单(type=2 子菜单) ----------------------------
- -- 父级「小程序系统设置」目录在历史迁移中已存在(path='/mini-program')
- INSERT INTO `sa_system_menu` (
- `parent_id`, `name`, `code`, `slug`, `type`, `path`, `component`, `method`, `icon`, `sort`,
- `link_url`, `is_iframe`, `is_keep_alive`, `is_hidden`, `is_fixed_tab`, `is_full_page`,
- `generate_id`, `generate_key`, `status`, `remark`, `created_by`, `updated_by`, `create_time`, `update_time`, `delete_time`
- )
- SELECT
- (SELECT id FROM `sa_system_menu` WHERE `path` = '/mini-program' AND `delete_time` IS NULL LIMIT 1),
- CONVERT(0xE78988E69CACE7AEA1E79086 USING utf8mb4), -- 版本管理
- 'MiniProgramVersion',
- NULL,
- 2, -- type=2 菜单
- 'version', -- 子路径(无前导 \)
- '\\mini-program\\version', -- 组件路径(用 \)
- NULL,
- 'ri:apps-2-line',
- 60,
- NULL, 2, 2, 2, 2, 2,
- 0, NULL, 1, '小程序客户端版本管理', 1, 1, NOW(), NOW(), NULL
- WHERE NOT EXISTS (
- SELECT 1 FROM `sa_system_menu`
- WHERE `path` = 'version' AND `delete_time` IS NULL
- AND `parent_id` = (SELECT id FROM `sa_system_menu` WHERE `path` = '/mini-program' AND `delete_time` IS NULL LIMIT 1)
- );
- -- 3) 写 5 个权限点(type=3 按钮) ------------------------
- -- 父级 id 仍取「版本管理」菜单(用 component 定位,避免多 menu 干扰)
- SET @parent_id = (
- SELECT id FROM `sa_system_menu`
- WHERE `component` = '\\mini-program\\version' AND `delete_time` IS NULL
- ORDER BY id DESC LIMIT 1
- );
- -- 列表
- INSERT INTO `sa_system_menu` (
- `parent_id`, `name`, `code`, `slug`, `type`, `path`, `component`, `method`, `icon`, `sort`,
- `link_url`, `is_iframe`, `is_keep_alive`, `is_hidden`, `is_fixed_tab`, `is_full_page`,
- `generate_id`, `generate_key`, `status`, `remark`, `created_by`, `updated_by`, `create_time`, `update_time`, `delete_time`
- )
- SELECT @parent_id, CONVERT(0xE78988E69CACE7AEA1E79086E587ADE8A1A8 USING utf8mb4), 'MiniProgramVersionIndex', 'core:miniProgram:version:index', 3, NULL, NULL, NULL, 'GET', NULL, 0, NULL, 2, 2, 2, 2, 2, 0, NULL, 1, NULL, 1, 1, NOW(), NOW(), NULL
- WHERE @parent_id IS NOT NULL
- AND NOT EXISTS (SELECT 1 FROM `sa_system_menu` WHERE `slug` = 'core:miniProgram:version:index' AND `delete_time` IS NULL);
- -- 详情
- INSERT INTO `sa_system_menu` (
- `parent_id`, `name`, `code`, `slug`, `type`, `path`, `component`, `method`, `icon`, `sort`,
- `link_url`, `is_iframe`, `is_keep_alive`, `is_hidden`, `is_fixed_tab`, `is_full_page`,
- `generate_id`, `generate_key`, `status`, `remark`, `created_by`, `updated_by`, `create_time`, `update_time`, `delete_time`
- )
- SELECT @parent_id, CONVERT(0xE78988E69CACE7AEA1E79086E8AFA6E68385 USING utf8mb4), 'MiniProgramVersionRead', 'core:miniProgram:version:read', 3, NULL, NULL, NULL, 'GET', NULL, 0, NULL, 2, 2, 2, 2, 2, 0, NULL, 1, NULL, 1, 1, NOW(), NOW(), NULL
- WHERE @parent_id IS NOT NULL
- AND NOT EXISTS (SELECT 1 FROM `sa_system_menu` WHERE `slug` = 'core:miniProgram:version:read' AND `delete_time` IS NULL);
- -- 新增
- INSERT INTO `sa_system_menu` (
- `parent_id`, `name`, `code`, `slug`, `type`, `path`, `component`, `method`, `icon`, `sort`,
- `link_url`, `is_iframe`, `is_keep_alive`, `is_hidden`, `is_fixed_tab`, `is_full_page`,
- `generate_id`, `generate_key`, `status`, `remark`, `created_by`, `updated_by`, `create_time`, `update_time`, `delete_time`
- )
- SELECT @parent_id, CONVERT(0xE78988E69CACE7AEA1E79086E696B0E5A29E USING utf8mb4), 'MiniProgramVersionSave', 'core:miniProgram:version:save', 3, NULL, NULL, NULL, 'POST', NULL, 0, NULL, 2, 2, 2, 2, 2, 0, NULL, 1, NULL, 1, 1, NOW(), NOW(), NULL
- WHERE @parent_id IS NOT NULL
- AND NOT EXISTS (SELECT 1 FROM `sa_system_menu` WHERE `slug` = 'core:miniProgram:version:save' AND `delete_time` IS NULL);
- -- 编辑
- INSERT INTO `sa_system_menu` (
- `parent_id`, `name`, `code`, `slug`, `type`, `path`, `component`, `method`, `icon`, `sort`,
- `link_url`, `is_iframe`, `is_keep_alive`, `is_hidden`, `is_fixed_tab`, `is_full_page`,
- `generate_id`, `generate_key`, `status`, `remark`, `created_by`, `updated_by`, `create_time`, `update_time`, `delete_time`
- )
- SELECT @parent_id, CONVERT(0xE78988E69CACE7AEA1E79086E7BC96E8BE91 USING utf8mb4), 'MiniProgramVersionUpdate', 'core:miniProgram:version:update', 3, NULL, NULL, NULL, 'PUT', NULL, 0, NULL, 2, 2, 2, 2, 2, 0, NULL, 1, NULL, 1, 1, NOW(), NOW(), NULL
- WHERE @parent_id IS NOT NULL
- AND NOT EXISTS (SELECT 1 FROM `sa_system_menu` WHERE `slug` = 'core:miniProgram:version:update' AND `delete_time` IS NULL);
- -- 删除
- INSERT INTO `sa_system_menu` (
- `parent_id`, `name`, `code`, `slug`, `type`, `path`, `component`, `method`, `icon`, `sort`,
- `link_url`, `is_iframe`, `is_keep_alive`, `is_hidden`, `is_fixed_tab`, `is_full_page`,
- `generate_id`, `generate_key`, `status`, `remark`, `created_by`, `updated_by`, `create_time`, `update_time`, `delete_time`
- )
- SELECT @parent_id, CONVERT(0xE78988E69CACE7AEA1E79086E588A0E999A4 USING utf8mb4), 'MiniProgramVersionDestroy', 'core:miniProgram:version:destroy', 3, NULL, NULL, NULL, 'DELETE', NULL, 0, NULL, 2, 2, 2, 2, 2, 0, NULL, 1, NULL, 1, 1, NOW(), NOW(), NULL
- WHERE @parent_id IS NOT NULL
- AND NOT EXISTS (SELECT 1 FROM `sa_system_menu` WHERE `slug` = 'core:miniProgram:version:destroy' AND `delete_time` IS NULL);
|