diff --git a/yudao-module-education/src/main/resources/db/migration/education/V4460__fix_education_menu_visibility.sql b/yudao-module-education/src/main/resources/db/migration/education/V4460__fix_education_menu_visibility.sql new file mode 100644 index 00000000..edf4853f --- /dev/null +++ b/yudao-module-education/src/main/resources/db/migration/education/V4460__fix_education_menu_visibility.sql @@ -0,0 +1,22 @@ +-- 修复"教育管理"根菜单(6800)在侧边栏不可见的问题。 +-- 根因:V4080 创建时 visible=false;V4220 以 ON CONFLICT DO NOTHING 插入同 id 未覆盖旧行。 +DO $$ +DECLARE + installed INTEGER; +BEGIN + IF to_regclass('system_menu') IS NULL THEN + RETURN; + END IF; + + UPDATE system_menu + SET visible = true, updater = 'education-flyway' + WHERE id = 6800 AND deleted = 0; + + SELECT count(*) INTO installed + FROM system_menu + WHERE id = 6800 AND deleted = 0 AND status = 0 AND type = 1 AND visible = true; + IF installed <> 1 THEN + RAISE EXCEPTION 'Education root menu visibility fix failed' USING ERRCODE = '23505'; + END IF; +END; +$$;