Files
medical-mall/docs/sql/10_quality_checks.md

2.7 KiB
Raw Blame History

10 质量自检与验收(表/字段/索引/扩展/函数)

本节汇总仓库中已有的“数据库状态检查/验证脚本”,并给出在交付与升级时推荐的自检流程。


1. 现有自检脚本清单

mall_sql/tests/ 目录下可见:

  • mall_database_check.sql

    • 检查 ak_users 是否缺少商城字段
    • 检查商城核心表是否存在
    • 检查关键索引是否存在
    • 检查必要扩展是否安装
    • 检查关键函数是否存在
    • 输出“推荐执行方案”fields_only / alter_upgrade / migration / seo_security 等)
    • 可生成具体 ALTER TABLE 建议
  • validation_test.sql(存在即表示有更细校验,建议结合实际内容补充到本文档)

  • mock_data_insert.sql / verify_mock_data_fix.sql

    • 用于联调/验证查询与页面
  • create_supabase_auth_users.sql

    • 可能用于创建 Supabase auth 用户或测试映射

2. 推荐自检流程(交付/升级)

2.1 升级前(评估现状)

  1. 执行 mall_database_check.sql
  2. 根据输出信息确认:
    • ak_users 缺哪些字段
    • ml_ 核心表缺哪些
    • 关键索引是否齐全
    • 扩展是否安装
    • 函数是否缺失

2.2 执行升级/迁移

根据 mall_database_check.sql 给出的推荐:

  • 缺字段多 + 缺表:mall_alter_upgrade.sql
  • 只缺字段:mall_fields_only_upgrade.sql
  • 只缺表:mall_migration.sql
  • SEO/RLS 缺失:mall_seo_security.sql

2.3 升级后(验证验收)

  1. 再次执行 mall_database_check.sql,确认缺失项归零 2.(测试环境)插入 mock 数据(若有脚本)
  2. 跑核心链路的“最小验收用例”(见下)

3. 最小验收用例(建议团队固化)

3.1 用户侧

  • 能创建/更新 ml_user_profiles
  • 能新增地址并设置默认,确认默认地址唯一
  • 能加购、更新购物车数量

3.2 商品侧

  • 能创建商品 + SKU
  • 更新 SKU 库存,确认 ml_products.total_stock/available_stock 自动刷新
  • 商品上架后普通用户侧可查询到RLS/策略允许)

3.3 订单侧

  • 能创建订单 + 明细
  • 更新订单状态1->2->3->4确认时间戳与销量累计逻辑若使用 complete 脚本触发器)

3.4 营销/优惠券

  • 创建券模板
  • 领券生成券码
  • 核销券并绑定订单

4. 注意事项

  • 生产执行前务必在测试环境验证脚本兼容性与执行顺序。
  • 若启用 RLS检查脚本/运维脚本需要使用 service role 或具有相应权限的连接方式,否则可能误判数据可见性。
  • 如新增状态枚举值,需同步更新:
    • CHECK 约束
    • 相关触发器/函数
    • 文档字典(03_enums_status_dict.md