26 KiB
26 KiB
SQL 文件执行顺序文档(软删除标准化改造 + Admin 模块全量)
目标
为本次“软删除标准化改造(Schema + RLS + RPC)”提供可直接执行且顺序准确的数据库同步步骤,同时整理全量 Admin 模块对应的数据库文件,确保:
- 先补齐表字段与索引(避免 RPC/RLS 引用字段失败);
- 再应用 RLS(确保查询默认过滤已软删数据);
- 最后加载/替换 RPC(确保删除行为变更与审计字段写入生效)。
前置约束
- 执行账号需具备:
ALTER TABLE、CREATE INDEX、ALTER POLICY/CREATE POLICY、CREATE OR REPLACE FUNCTION等权限。 - 禁止并发执行:建议串行执行,尤其是 RLS/RPC 部分。
- 若生产环境已存在同名对象:本次以
CREATE OR REPLACE FUNCTION与 policy 更新为主,属于“覆盖式更新”。
第一阶段:Schema / Migration(必须先执行)
目的:补齐
deleted_at/deleted_by/restored_at/restored_by字段与软删除索引,作为后续 RLS/RPC 的基础依赖。
| 序号 | 文件路径 | 说明 |
|---|---|---|
| 1 | 10_schema/99_soft_delete_migration_v1.sql |
软删除字段迁移(核心) |
其他 Schema 文件(按业务域分类)
Admin 域
| 文件路径 | 说明 |
|---|---|
10_schema/admin/ml_system_configs_v1.sql |
系统配置表 |
Auth 域
| 文件路径 | 说明 |
|---|---|
10_schema/user/ak_auth_system_v1.sql |
认证系统表(roles/permissions/admin_roles/role_permissions) |
10_schema/user/ak_users_add_phone_real_name_v1.sql |
用户扩展字段 |
10_schema/user/ak_users_finance_fields_v1.sql |
用户财务字段 |
10_schema/user/ak_users_constraints_fix_v1.sql |
用户表约束修复 |
CMS 域
| 文件路径 | 说明 |
|---|---|
10_schema/cms/ml_cms_tables_v1.sql |
CMS 内容管理表 |
Decoration 域
| 文件路径 | 说明 |
|---|---|
10_schema/decoration/ak_diy_pages_v1.sql |
DIY 页面表 |
Delivery 域
| 文件路径 | 说明 |
|---|---|
10_schema/delivery/ak_delivery_system_v1.sql |
配送系统表 |
Distribution 域
Finance 域
| 文件路径 | 说明 |
|---|---|
10_schema/finance/ml_invoices_v1.sql |
发票表 |
10_schema/finance/ml_extract_v1.sql |
提现表 |
10_schema/finance/ml_user_recharge_v1.sql |
用户充值表 |
10_schema/finance/ml_user_bill_v1.sql |
用户账单表 |
Kefu 域
| 文件路径 | 说明 |
|---|---|
10_schema/kefu/ml_kefu_tables_v1.sql |
客服系统表 |
Marketing 域
Order 域
| 文件路径 | 说明 |
|---|---|
10_schema/order/ml_orders_schema_update_v1.sql |
订单表结构更新 |
Product 域
User 域
| 文件路径 | 说明 |
|---|---|
10_schema/user/ak_user_labels_v1.sql |
用户标签表 |
10_schema/user/ak_user_groups_v1.sql |
用户分组表 |
10_schema/user/ak_user_levels_v1.sql |
用户等级表 |
第二阶段:RLS(在 Schema 之后执行)
目的:将各模块策略统一补齐
deleted_at IS NULL,确保默认查询排除已软删记录。
按域执行(域之间无强依赖,可按任意顺序;但必须在 RPC 之前执行):
Auth 域(新增)
| 文件路径 | 说明 |
|---|---|
20_rls/auth/ak_auth_rls_v1.sql |
权限/角色表 RLS 策略(禁止直接访问) |
Admin 域
| 文件路径 | 说明 |
|---|---|
20_rls/admin/ml_system_configs_rls_v1.sql |
系统配置 RLS |
CMS 域
| 文件路径 | 说明 |
|---|---|
20_rls/cms/ml_cms_rls_v1.sql |
CMS 内容 RLS |
Decoration 域
| 文件路径 | 说明 |
|---|---|
20_rls/decoration/ml_decoration_rls_v1.sql |
装修 RLS |
Delivery 域
| 文件路径 | 说明 |
|---|---|
20_rls/delivery/ak_delivery_rls_v1.sql |
配送 RLS |
Distribution 域
| 文件路径 | 说明 |
|---|---|
20_rls/distribution/ml_distribution_rls_v1.sql |
分销 RLS |
Finance 域
| 文件路径 | 说明 |
|---|---|
20_rls/finance/ml_extract_rls_v1.sql |
提现 RLS |
20_rls/finance/ml_invoices_rls_v1.sql |
发票 RLS |
20_rls/finance/ml_user_bill_rls_v1.sql |
用户账单 RLS |
20_rls/finance/ml_user_recharge_rls_v1.sql |
用户充值 RLS |
Kefu 域
| 文件路径 | 说明 |
|---|---|
20_rls/kefu/ml_kefu_rls_v1.sql |
客服 RLS |
Marketing 域
| 文件路径 | 说明 |
|---|---|
20_rls/marketing/ml_marketing_others_rls_v1.sql |
其他营销 RLS |
20_rls/marketing/ml_marketing_activities_rls_v1.sql |
营销活动 RLS |
20_rls/marketing/ml_coupon_templates_rls_v1.sql |
优惠券模板 RLS |
User 域
| 文件路径 | 说明 |
|---|---|
20_rls/user/ak_user_labels_rls_v1.sql |
用户标签 RLS |
20_rls/user/ak_user_groups_rls_v1.sql |
用户分组 RLS |
20_rls/user/ak_user_levels_rls_v1.sql |
用户等级 RLS |
第三阶段:RPC(最后执行)
目的:将“删除”统一切换为软删除(写入
deleted_at/deleted_by),并在需要的函数中补齐级联软删。
按域执行(域之间一般无强依赖;但建议按下列顺序,先基础权限/用户,再业务模块):
3.1 Admin 域(系统管理)
查询类
| 文件路径 | 说明 |
|---|---|
30_rpc/admin/rpc_admin_get_system_info_v1.sql |
获取系统信息 |
30_rpc/admin/rpc_admin_get_overall_stats_v1.sql |
获取整体统计 |
30_rpc/admin/rpc_admin_system_config_get_v1.sql |
获取系统配置 |
保存/更新类
| 文件路径 | 说明 |
|---|---|
30_rpc/admin/rpc_admin_system_config_save_v1.sql |
保存系统配置 |
3.2 Auth 域(权限认证)
权限校验辅助函数(新增)
| 文件路径 | 说明 |
|---|---|
30_rpc/auth/fn_check_admin_permission_v1.sql |
通用 RBAC 权限校验函数 |
查询类
保存/更新类
| 文件路径 | 说明 |
|---|---|
30_rpc/auth/rpc_admin_save_permission_v1.sql |
保存权限 |
30_rpc/auth/rpc_admin_save_role_v1.sql |
保存角色 |
删除类(软删除)
| 文件路径 | 说明 |
|---|---|
30_rpc/auth/rpc_admin_delete_permission_v1.sql |
删除权限(软删除) |
30_rpc/auth/rpc_admin_delete_role_v1.sql |
删除角色(软删除) |
用户处理类
| 文件路径 | 说明 |
|---|---|
30_rpc/auth/handle_new_user_v3.sql |
处理新用户 v3 |
30_rpc/auth/handle_new_user_v2.sql |
处理新用户 v2 |
3.3 CMS 域(内容管理)
查询类
| 文件路径 | 说明 |
|---|---|
30_rpc/cms/rpc_admin_article_list_v1.sql |
获取文章列表 |
30_rpc/cms/rpc_admin_article_get_detail_v1.sql |
获取文章详情 |
30_rpc/cms/rpc_admin_article_category_list_v1.sql |
获取文章分类列表 |
保存/更新类
| 文件路径 | 说明 |
|---|---|
30_rpc/cms/rpc_admin_article_save_v1.sql |
保存文章 |
30_rpc/cms/rpc_admin_article_category_save_v1.sql |
保存文章分类 |
删除类(软删除)
| 文件路径 | 说明 |
|---|---|
30_rpc/cms/rpc_admin_article_delete_v1.sql |
删除文章(软删除) |
30_rpc/cms/rpc_admin_article_category_delete_v1.sql |
删除文章分类(软删除) |
状态管理类
| 文件路径 | 说明 |
|---|---|
30_rpc/cms/rpc_admin_article_set_status_v1.sql |
设置文章状态 |
30_rpc/cms/rpc_admin_article_category_set_status_v1.sql |
设置文章分类状态 |
3.4 Decoration 域(装修管理)
查询类
| 文件路径 | 说明 |
|---|---|
30_rpc/decoration/rpc_admin_get_diy_page_list_v1.sql |
获取 DIY 页面列表 |
保存/更新类
| 文件路径 | 说明 |
|---|---|
30_rpc/decoration/rpc_admin_save_diy_page_v1.sql |
保存 DIY 页面 |
30_rpc/decoration/rpc_admin_set_home_page_v1.sql |
设置首页 |
删除类(软删除)
| 文件路径 | 说明 |
|---|---|
30_rpc/decoration/rpc_admin_delete_diy_page_v1.sql |
删除 DIY 页面(软删除) |
3.5 Delivery 域(配送管理)
查询类
| 文件路径 | 说明 |
|---|---|
30_rpc/delivery/rpc_admin_get_delivery_staff_list_v1.sql |
获取配送员列表 |
30_rpc/delivery/rpc_admin_get_delivery_station_list_v1.sql |
获取配送站点列表 |
保存/更新类
| 文件路径 | 说明 |
|---|---|
30_rpc/delivery/rpc_admin_save_delivery_staff_v1.sql |
保存配送员 |
30_rpc/delivery/rpc_admin_save_delivery_station_v1.sql |
保存配送站点 |
删除类(软删除)
| 文件路径 | 说明 |
|---|---|
30_rpc/delivery/rpc_admin_delete_delivery_staff_v1.sql |
删除配送员(软删除) |
30_rpc/delivery/rpc_admin_delete_delivery_station_v1.sql |
删除配送站点(软删除) |
3.6 Distribution 域(分销管理)
查询类
保存/更新类
| 文件路径 | 说明 |
|---|---|
30_rpc/distribution/rpc_admin_save_agent_v1.sql |
保存代理 |
30_rpc/distribution/rpc_admin_save_division_v1.sql |
保存事业部 |
删除类(软删除)
| 文件路径 | 说明 |
|---|---|
30_rpc/distribution/rpc_admin_delete_agent_v1.sql |
删除代理(软删除) |
30_rpc/distribution/rpc_admin_delete_division_v1.sql |
删除事业部(软删除) |
处理/审核类
| 文件路径 | 说明 |
|---|---|
30_rpc/distribution/rpc_admin_process_agent_apply_v1.sql |
处理代理申请 |
3.7 Finance 域(财务管理)
查询/统计类
处理/审核类
| 文件路径 | 说明 |
|---|---|
30_rpc/finance/rpc_admin_invoice_process_v1.sql |
处理发票 |
30_rpc/finance/rpc_admin_recharge_audit_v1.sql |
审核充值 |
30_rpc/finance/rpc_admin_extract_review_v1.sql |
审核提现 |
3.8 Kefu 域(客服管理)
查询类
保存/更新类
删除类(软删除)
| 文件路径 | 说明 |
|---|---|
30_rpc/kefu/rpc_admin_kefu_account_delete_v1.sql |
删除客服账号(软删除) |
30_rpc/kefu/rpc_admin_kefu_auto_reply_delete_v1.sql |
删除自动回复(软删除) |
30_rpc/kefu/rpc_admin_kefu_word_delete_v1.sql |
删除客服话术(软删除) |
30_rpc/kefu/rpc_admin_kefu_word_category_delete_v1.sql |
删除话术分类(软删除) |
状态/处理类
| 文件路径 | 说明 |
|---|---|
30_rpc/kefu/rpc_admin_kefu_account_set_status_v1.sql |
设置客服账号状态 |
30_rpc/kefu/rpc_admin_kefu_auto_reply_set_status_v1.sql |
设置自动回复状态 |
30_rpc/kefu/rpc_admin_kefu_feedback_process_v1.sql |
处理客服反馈 |
3.9 Marketing 域(营销管理)
查询/统计类
| 文件路径 | 说明 |
|---|---|
30_rpc/marketing/rpc_admin_get_integral_stats_v1.sql |
获取积分统计 |
3.10 Order 域(订单管理)
查询/统计类
3.11 Product 域(商品管理)
查询/统计类
删除类(软删除)
| 文件路径 | 说明 |
|---|---|
30_rpc/product/rpc_admin_category_delete_v1.sql |
删除商品分类(软删除) |
3.12 User 域(用户管理)
查询类
| 文件路径 | 说明 |
|---|---|
30_rpc/user/rpc_admin_user_label_list_v1.sql |
获取用户标签列表 |
30_rpc/user/rpc_admin_user_group_list_v1.sql |
获取用户分组列表 |
30_rpc/user/rpc_admin_user_level_list_v1.sql |
获取用户等级列表 |
保存/更新类
| 文件路径 | 说明 |
|---|---|
30_rpc/user/rpc_admin_user_label_save_v1.sql |
保存用户标签 |
30_rpc/user/rpc_admin_user_group_save_v1.sql |
保存用户分组 |
30_rpc/user/rpc_admin_user_level_save_v1.sql |
保存用户等级 |
删除类(软删除)
| 文件路径 | 说明 |
|---|---|
30_rpc/user/rpc_admin_user_label_delete_v1.sql |
删除用户标签(软删除) |
30_rpc/user/rpc_admin_user_group_delete_v1.sql |
删除用户分组(软删除) |
30_rpc/user/rpc_admin_user_level_delete_v1.sql |
删除用户等级(软删除) |
状态/可见性管理类
3.13 Analytics 域(数据分析)
| 文件路径 | 说明 |
|---|---|
30_rpc/analytics/rpc_analytics_user_gender_distribution_v1.sql |
用户性别分布分析 |
执行后验证清单
- 字段存在性:抽查任一涉及表,确认
deleted_at/deleted_by字段存在。 - 索引存在性:确认
idx_<table>_soft_delete存在。 - RLS 生效:软删一条数据后,使用正常查询路径确认该条记录不可见。
- RPC 行为:调用任一删除 RPC,确认:
- 记录未被物理删除;
deleted_at写入;deleted_by写入(管理员 ID);- 需要级联的对象其关联数据同步被软删。