Files
junhong_cmp_fiber/migrations
break 7891189712
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 8m52s
feat(代理自充): AUG26-017 代理自充收款方式与线下预存款审批字段
- 受控配置新增代理在线自充允许范围(仅微信/仅支付宝/同时支持),读侧与创建侧取允许范围与可用商户池交集,两侧失败关闭
- 新增允许范围查询与修改端点,读限代理与平台账号、写限超级管理员,复用受控配置写服务留痕
- tb_agent_recharge_record 新增交易流水号、线下收款方式三列快照与其他凭证列(成对迁移 000213)
- 线下申请校验启用的收款方式字典项与必填交易流水号,交易流水号独立于在线渠道交易号、不参与去重
- 扩展 offline_recharge_approval 场景可映射字段白名单与字典引用保护
- 新增付款凭证识别能力与交易流水号预填接口,识别不落库、日志不记录载荷
2026-09-11 15:21:23 +08:00
..
2026-08-06 09:35:00 +08:00
2026-08-06 09:35:00 +08:00

数据库迁移说明

当前结构

migrations/
├── 000114_squash_baseline.up.sql   ← ⚠️ 待创建(见下方说明)
├── 000114_squash_baseline.down.sql ← ⚠️ 待创建
├── 000115_init_data.up.sql         ← 初始化数据(轮询配置 + purchase_role 回填)
├── 000115_init_data.down.sql
├── 000116_remove_legacy_commission_fields.up.sql  ← 删除废弃分佣字段
├── 000116_remove_legacy_commission_fields.down.sql
└── archive/                        ← 已归档的历史迁移000000~000113

⚠️ 发布前必做:生成 000114 squash 基线

背景历史迁移000000-000113已归档但尚未生成汇总基线文件。 现有测试环境的表是在 migrate 工具之外创建的,不受影响。 但全新环境本地搭建、CI、生产首次部署必须有 000114 才能通过 migrate up 建表。

执行时机:正式发布前,确认 schema 已稳定后执行一次。

步骤

  1. 安装 PostgreSQL 客户端(若未安装):

    brew install libpq
    export PATH="/opt/homebrew/opt/libpq/bin:$PATH"
    
  2. 生成 schema 基线(仅 DDL不含数据

    PGPASSWORD=<密码> pg_dump \
      --schema-only --no-owner --no-acl \
      -h <host> -U <user> -d <dbname> \
      > migrations/000114_squash_baseline.up.sql
    
  3. 在生成的 000114_squash_baseline.up.sql 头部加上注释(参考其他迁移文件格式)。

  4. 创建 000114_squash_baseline.down.sql(删除所有表):

    -- 回滚:删除所有业务表(谨慎执行)
    DROP TABLE IF EXISTS tb_wechat_config CASCADE;
    DROP TABLE IF EXISTS tb_tag CASCADE;
    -- ... 其他表(按依赖倒序)
    
  5. 找 AI 协助完成 down.sql 和验证步骤(在全新数据库执行 migrate up 验证链路)。

  6. 更新 scripts/reset_db.sh 中的注释,确认脚本可用。

迁移链路(目标状态)

全新数据库
  └─ migrate up
       ├─ 000114: 建表squash 基线)
       ├─ 000115: 写初始化数据
       └─ 000116: 删除废弃字段

现有测试环境说明

测试环境的表通过历史方式创建,schema_migrations 中仅记录版本 116。 对正在运行的服务没有影响。 若需在测试库补齐迁移记录,可手动运行 migrate up000115 全部幂等,安全)。