build-flow.api/docs/cleanup-order.sql

59 lines
3.3 KiB
PL/PgSQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- ============================================================
-- 清理"点单管理"残留数据(参考脚本,需人工 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;