237_add_minimax_platform.sql 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. -- 把 MiniMax 加入国产供应商平台白名单:
  2. -- 1. user_platform_quotas.platform CHECK
  3. -- 2. composite_model_routes.target_platform CHECK
  4. -- 3. channel_monitors / channel_monitor_request_templates.provider CHECK
  5. --
  6. -- 与 224/226/227 同型:DROP IF EXISTS 后重建超集约束,存量行瞬时校验通过。
  7. ALTER TABLE user_platform_quotas
  8. DROP CONSTRAINT IF EXISTS user_platform_quotas_platform_check;
  9. ALTER TABLE user_platform_quotas
  10. ADD CONSTRAINT user_platform_quotas_platform_check
  11. CHECK (platform IN ('anthropic', 'openai', 'gemini', 'antigravity', 'grok',
  12. 'kimi', 'zhipu', 'deepseek', 'minimax'));
  13. ALTER TABLE composite_model_routes
  14. DROP CONSTRAINT IF EXISTS composite_model_routes_target_platform_check;
  15. ALTER TABLE composite_model_routes
  16. ADD CONSTRAINT composite_model_routes_target_platform_check
  17. CHECK (target_platform IN ('anthropic', 'openai', 'gemini', 'antigravity', 'grok',
  18. 'kimi', 'zhipu', 'deepseek', 'minimax'));
  19. DO $$
  20. DECLARE
  21. monitor_constraint_def TEXT;
  22. template_constraint_def TEXT;
  23. BEGIN
  24. SELECT pg_get_constraintdef(c.oid)
  25. INTO monitor_constraint_def
  26. FROM pg_constraint c
  27. JOIN pg_class t ON t.oid = c.conrelid
  28. WHERE t.relname = 'channel_monitors'
  29. AND c.conname = 'channel_monitors_provider_check';
  30. IF monitor_constraint_def IS NULL OR position('minimax' IN monitor_constraint_def) = 0 THEN
  31. ALTER TABLE channel_monitors
  32. DROP CONSTRAINT IF EXISTS channel_monitors_provider_check;
  33. ALTER TABLE channel_monitors
  34. ADD CONSTRAINT channel_monitors_provider_check
  35. CHECK (provider IN ('openai', 'anthropic', 'gemini', 'grok',
  36. 'antigravity', 'kimi', 'zhipu', 'deepseek', 'minimax'));
  37. END IF;
  38. SELECT pg_get_constraintdef(c.oid)
  39. INTO template_constraint_def
  40. FROM pg_constraint c
  41. JOIN pg_class t ON t.oid = c.conrelid
  42. WHERE t.relname = 'channel_monitor_request_templates'
  43. AND c.conname = 'channel_monitor_request_templates_provider_check';
  44. IF template_constraint_def IS NULL OR position('minimax' IN template_constraint_def) = 0 THEN
  45. ALTER TABLE channel_monitor_request_templates
  46. DROP CONSTRAINT IF EXISTS channel_monitor_request_templates_provider_check;
  47. ALTER TABLE channel_monitor_request_templates
  48. ADD CONSTRAINT channel_monitor_request_templates_provider_check
  49. CHECK (provider IN ('openai', 'anthropic', 'gemini', 'grok',
  50. 'antigravity', 'kimi', 'zhipu', 'deepseek', 'minimax'));
  51. END IF;
  52. END $$;