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