20260902223822

This commit is contained in:
oneao committed 2026-09-02 22:38:23 +08:00
1 parent db7813a2d2
commit c8940f6e03
11 files changed
+327 -922

No files matched your search

@@ -256,14 +256,11 @@ BEGIN
b_menu_type varchar(20) NOT NULL,
b_route varchar(200) NULL,
b_module_id bigint NULL,
b_power_code varchar(50) NULL,
b_icon nvarchar(max) NULL, -- 图标:lucide:Name 引用 lucide,否则为 SVG 标记
b_xh int NOT NULL CONSTRAINT DF_s_menu_xh DEFAULT (0),
b_canuse int NOT NULL CONSTRAINT DF_s_menu_canuse DEFAULT (1),
CONSTRAINT PK_s_menu PRIMARY KEY (b_id),
CONSTRAINT UQ_s_menu_code UNIQUE (b_code),
CONSTRAINT CK_s_menu_parent CHECK (b_parent_id IS NULL OR b_parent_id <> b_id),
CONSTRAINT CK_s_menu_type CHECK (b_menu_type IN ('directory','page','data','external'))
CONSTRAINT UQ_s_menu_code UNIQUE (b_code)
);
CREATE INDEX IX_s_menu_parent ON dbo.s_menu (b_parent_id, b_xh, b_canuse);
CREATE INDEX IX_s_menu_module ON dbo.s_menu (b_module_id);
@@ -0,0 +1,16 @@
/*
菜单访问权限统一由 s_menu.b_code 派生,不再保存独立的 b_power_code。
可重复执行:仅在旧列存在时删除。
*/
SET NOCOUNT ON;
SET XACT_ABORT ON;
IF DB_NAME() <> N'FMS'
THROW 53600, N'This migration can only run against the FMS database.', 1;
IF COL_LENGTH(N'dbo.s_menu', N'b_power_code') IS NOT NULL
BEGIN
ALTER TABLE dbo.s_menu DROP COLUMN b_power_code;
END;
PRINT N'Migration 104 applied: s_menu.b_power_code removed.';
@@ -0,0 +1,39 @@
/*
菜单类型由业务层校验,不在数据库中使用 CHECK 约束限制。
现有 data 菜单统一迁移为 page:页面现在同时填写路由和绑定模块。
可重复执行:仅处理仍存在的旧数据或约束。
*/
SET NOCOUNT ON;
SET XACT_ABORT ON;
IF DB_NAME() <> N'FMS'
THROW 53600, N'This migration can only run against the FMS database.', 1;
IF OBJECT_ID(N'dbo.s_menu', N'U') IS NOT NULL
BEGIN
UPDATE dbo.s_menu
SET b_menu_type = 'page'
WHERE b_menu_type = 'data';
IF EXISTS (
SELECT 1
FROM sys.check_constraints
WHERE parent_object_id = OBJECT_ID(N'dbo.s_menu')
AND name = N'CK_s_menu_type'
)
BEGIN
ALTER TABLE dbo.s_menu DROP CONSTRAINT CK_s_menu_type;
END;
IF EXISTS (
SELECT 1
FROM sys.check_constraints
WHERE parent_object_id = OBJECT_ID(N'dbo.s_menu')
AND name = N'CK_s_menu_parent'
)
BEGIN
ALTER TABLE dbo.s_menu DROP CONSTRAINT CK_s_menu_parent;
END;
END;
PRINT N'Migration 105 applied: s_menu uses directory/page/external and business-layer validation.';