086_channel_platform_pricing.sql 914 B

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