-- ============================================================ -- 清理"点单管理"残留数据(参考脚本,需人工 review 后执行) -- -- 适用场景:代码已删除 + 种子已改(影响新库),但已部署的现有数据库里 -- 仍残留 order 菜单 / 权限 / 业务数据。此脚本用于清理这些残留。 -- -- ⚠️ 破坏性操作!执行前务必备份。请逐段确认、按需调整后执行。 -- ⚠️ 本脚本由 AI 生成,未在真实库验证过表结构,执行前请先用 \d 或 -- information_schema 核对表名/列名是否与注释一致。 -- -- 涉及两个库: -- 1) rag 库 —— 菜单(menus)、权限(permissions)、角色-权限(role_permissions) -- 2) order_service 库 —— order 业务表(可整库删除) -- ============================================================ -- ════════════════════════════════════════════════════════════ -- 一、rag 库:清理 order 菜单 / 权限 / 角色权限关联 -- (连接到 rag 库执行) -- ════════════════════════════════════════════════════════════ -- 0) 建议先查一下将要删除的行,确认范围: -- SELECT id, name, path FROM menus WHERE id IN ('40000000-0000-0000-0000-000000000060','40000000-0000-0000-0000-000000000061'); -- SELECT id, name, code, "group" FROM permissions WHERE "group" = 'OrderManagement'; -- SELECT * FROM role_permissions WHERE permission_id IN (SELECT id FROM permissions WHERE "group" = 'OrderManagement'); BEGIN; -- 1) 删除角色-权限关联(必须先删,否则权限删除会被外键阻止) -- 表名按项目 snake_case 约定推断为 role_permissions;若实际为 role_permission 请调整。 DELETE FROM role_permissions WHERE permission_id IN ( SELECT id FROM permissions WHERE "group" = 'OrderManagement' ); -- 2) 删除 order 权限(group=OrderManagement 的 6 条:menu-item:* / order:*) DELETE FROM permissions WHERE "group" = 'OrderManagement'; -- 3) 删除 order 菜单:点单管理(父) + 点单台(子) -- 先删子菜单(parentId 引用父),再删父菜单。 DELETE FROM menus WHERE id = '40000000-0000-0000-0000-000000000061'; -- 点单台 DELETE FROM menus WHERE id = '40000000-0000-0000-0000-000000000060'; -- 点单管理 COMMIT; -- ════════════════════════════════════════════════════════════ -- 二、order_service 库:丢弃整个业务库 -- (在 postgres 维护库执行,或具备 CREATEDB 权限的连接) -- ════════════════════════════════════════════════════════════ -- order 模块独占 order_service 库(Admin.csproj 已移除其 DbContext 注册, -- 不再有任何代码依赖此库)。可直接整库删除: -- DROP DATABASE order_service; -- 若只想清空数据保留库(谨慎): -- \c order_service -- TRUNCATE orders, order_items, menu_items RESTART IDENTITY CASCADE;