batch-account-level.sql 1.3 KB

123456789101112131415161718192021222324252627
  1. -- 批量付款账号级改造(2026-08-26)
  2. -- 手工执行: psycopg2 连接 payment_platform_java 库
  3. -- 幂等: 已存在列/索引则跳过
  4. -- 1. 授权主体字段
  5. ALTER TABLE pay_batch_authorize
  6. ADD COLUMN IF NOT EXISTS participant_name varchar(128),
  7. ADD COLUMN IF NOT EXISTS service_provider_id bigint;
  8. -- 1b. 去企业化: 实体已无 enterprise_id 字段,INSERT 不含该列;原 NOT NULL 无默认值
  9. -- 会导致授权申请/批次创建落库失败(null value in column "enterprise_id")→ 改为可空
  10. ALTER TABLE pay_batch_authorize ALTER COLUMN enterprise_id DROP NOT NULL;
  11. ALTER TABLE pay_batch_order ALTER COLUMN enterprise_id DROP NOT NULL;
  12. -- 2. 唯一索引改租户级(先删旧 enterprise 索引)
  13. DROP INDEX IF EXISTS uk_batch_authorize_active;
  14. -- 联调期存量数据若存在同租户同 participant 多行,先清理再建索引:
  15. -- DELETE FROM pay_batch_authorize a USING pay_batch_authorize b
  16. -- WHERE a.id < b.id AND a.tenant_id = b.tenant_id AND a.participant_id = b.participant_id
  17. -- AND a.status <> 'UNBIND' AND b.status <> 'UNBIND';
  18. CREATE UNIQUE INDEX uk_batch_authorize_active
  19. ON pay_batch_authorize (tenant_id, participant_id)
  20. WHERE status <> 'UNBIND';
  21. -- 3. 批次冗余服务商
  22. ALTER TABLE pay_batch_order
  23. ADD COLUMN IF NOT EXISTS service_provider_id bigint;