| 123456789101112131415161718192021 |
- -- 086_channel_platform_pricing.sql
- -- 渠道按平台维度:model_pricing 加 platform 列,model_mapping 改为嵌套格式
- -- 1. channel_model_pricing 加 platform 列
- ALTER TABLE channel_model_pricing
- ADD COLUMN IF NOT EXISTS platform VARCHAR(50) NOT NULL DEFAULT 'anthropic';
- CREATE INDEX IF NOT EXISTS idx_channel_model_pricing_platform
- ON channel_model_pricing (platform);
- -- 2. model_mapping: 从扁平 {"src":"dst"} 迁移为嵌套 {"anthropic":{"src":"dst"}}
- -- 仅迁移非空、非 '{}' 的旧格式数据(通过检查第一个 value 是否为字符串来判断是否为旧格式)
- UPDATE channels
- SET model_mapping = jsonb_build_object('anthropic', model_mapping)
- WHERE model_mapping IS NOT NULL
- AND model_mapping::text NOT IN ('{}', 'null', '')
- AND NOT EXISTS (
- SELECT 1 FROM jsonb_each(model_mapping) AS kv
- WHERE jsonb_typeof(kv.value) = 'object'
- LIMIT 1
- );
|