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