-- 回滚商户池支付路由 Schema。 -- 任一新路由支付、成功累计或新配置事实存在时均禁止破坏性回滚。 DO $$ BEGIN IF EXISTS (SELECT 1 FROM tb_payment WHERE merchant_id IS NOT NULL OR merchant_pool_id IS NOT NULL) OR EXISTS (SELECT 1 FROM tb_payment_merchant_routing_success) OR EXISTS (SELECT 1 FROM tb_payment_merchant) OR EXISTS (SELECT 1 FROM tb_payment_merchant_pool) OR EXISTS (SELECT 1 FROM tb_payment_merchant_pool_member) OR EXISTS (SELECT 1 FROM tb_wechat_authorization) THEN RAISE EXCEPTION '存在商户池支付路由业务事实,禁止回滚商户池支付路由迁移'; END IF; END $$; DROP INDEX IF EXISTS idx_payment_merchant_pool_route; DROP INDEX IF EXISTS idx_payment_merchant_route; ALTER TABLE tb_payment DROP COLUMN IF EXISTS routing_epoch, DROP COLUMN IF EXISTS routing_strategy_snapshot, DROP COLUMN IF EXISTS merchant_pool_name_snapshot, DROP COLUMN IF EXISTS merchant_provider_type_snapshot, DROP COLUMN IF EXISTS merchant_payment_method_snapshot, DROP COLUMN IF EXISTS merchant_name_snapshot, DROP COLUMN IF EXISTS merchant_pool_id, DROP COLUMN IF EXISTS merchant_id; DROP TABLE IF EXISTS tb_payment_merchant_routing_success; DROP TABLE IF EXISTS tb_wechat_authorization; DROP TABLE IF EXISTS tb_payment_merchant_pool_member; DROP TABLE IF EXISTS tb_payment_merchant_pool; DROP TABLE IF EXISTS tb_payment_merchant;