Files
FruitServer/sql/patch-2026-10-23-app-version.sql
T

51 lines
3.0 KiB
SQL

-- Author: fruit.com.cn
-- App 版本管理:表 + 后台菜单 + 角色菜单授权
CREATE TABLE IF NOT EXISTS app_version (
id BIGINT PRIMARY KEY,
platform VARCHAR(16) NOT NULL, -- ANDROID / IOS
version_code INTEGER NOT NULL, -- 整数版本号(比较用)
version_name VARCHAR(32) NOT NULL, -- 展示版本号,如 1.2.0
download_url VARCHAR(512) NOT NULL,
update_content TEXT, -- 更新说明
force_update SMALLINT NOT NULL DEFAULT 0, -- 1=强更 0=可选
min_supported_code INTEGER NOT NULL DEFAULT 0, -- 低于此版本强制升级
status SMALLINT NOT NULL DEFAULT 1, -- 1=已发布 0=已下架
released_at TIMESTAMP(3),
created_by BIGINT,
created_at TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
deleted SMALLINT NOT NULL DEFAULT 0
);
CREATE INDEX IF NOT EXISTS idx_app_version_platform ON app_version(platform, version_code DESC);
CREATE INDEX IF NOT EXISTS idx_app_version_status ON app_version(status, platform);
DROP TRIGGER IF EXISTS trg_app_version_updated_at ON app_version;
CREATE TRIGGER trg_app_version_updated_at
BEFORE UPDATE ON app_version
FOR EACH ROW
EXECUTE FUNCTION set_updated_at();
-- 菜单:后台管理下新增「版本管理」(id=39)
INSERT INTO sys_menu (id, parent_id, title, route_path, route_name, component, redirect, icon, permission_code, type, always_show, affix, sort, visible, status, created_at, updated_at, super_admin_visible)
VALUES (39, 6, '版本管理', 'app-versions', 'app-versions', 'views/systemManagement/AppVersionView', '', 'ep:download', 'app-version:list', 'MENU', 0, 0, 9, 1, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, 1)
ON CONFLICT (id) DO NOTHING;
-- 权限按钮
INSERT INTO sys_menu (id, parent_id, title, route_path, route_name, component, permission_code, type, sort, visible, status, created_at, updated_at, super_admin_visible) VALUES
(40, 39, '查看', '', '', '', 'app-version:list', 'BUTTON', 1, 1, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, 1),
(41, 39, '新增', '', '', '', 'app-version:create', 'BUTTON', 2, 1, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, 1),
(42, 39, '编辑', '', '', '', 'app-version:update', 'BUTTON', 3, 1, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, 1),
(43, 39, '删除', '', '', '', 'app-version:delete', 'BUTTON', 4, 1, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, 1),
(44, 39, '上下架', '', '', '', 'app-version:update', 'BUTTON', 5, 1, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, 1)
ON CONFLICT (id) DO NOTHING;
-- 超管角色授权(sys_role_menu 需要手动 id,按现有 MAX(id) 顺延)
INSERT INTO sys_role_menu (id, role_id, menu_id)
SELECT 5000031, 1, 39 UNION ALL
SELECT 5000032, 1, 40 UNION ALL
SELECT 5000033, 1, 41 UNION ALL
SELECT 5000034, 1, 42 UNION ALL
SELECT 5000035, 1, 43 UNION ALL
SELECT 5000036, 1, 44
ON CONFLICT DO NOTHING;