40 lines
1.6 KiB
SQL
40 lines
1.6 KiB
SQL
-- Migration: 176_channel_monitor_grok_provider
|
|||
|
|
-- Allow Grok as a channel-monitor provider. Grok checks use the existing
|
||
|
|
-- OpenAI-compatible chat completions protocol with model grok-4.5 by default.
|
||
|
|
|
||
|
|
DO $$
|
||
|
|
DECLARE
|
||
|
|
monitor_constraint_def TEXT;
|
||
|
|
template_constraint_def TEXT;
|
||
|
|
BEGIN
|
||
|
|
SELECT pg_get_constraintdef(c.oid)
|
||
|
|
INTO monitor_constraint_def
|
||
|
|
FROM pg_constraint c
|
||
|
|
JOIN pg_class t ON t.oid = c.conrelid
|
||
|
|
WHERE t.relname = 'channel_monitors'
|
||
|
|
AND c.conname = 'channel_monitors_provider_check';
|
||
|
|
|
||
|
|
IF monitor_constraint_def IS NULL OR position('grok' IN monitor_constraint_def) = 0 THEN
|
||
|
|
ALTER TABLE channel_monitors
|
||
|
|
DROP CONSTRAINT IF EXISTS channel_monitors_provider_check;
|
||
|
|
ALTER TABLE channel_monitors
|
||
|
|
ADD CONSTRAINT channel_monitors_provider_check
|
||
|
|
CHECK (provider IN ('openai', 'anthropic', 'gemini', 'grok'));
|
||
|
|
END IF;
|
||
|
|
|
||
|
|
SELECT pg_get_constraintdef(c.oid)
|
||
|
|
INTO template_constraint_def
|
||
|
|
FROM pg_constraint c
|
||
|
|
JOIN pg_class t ON t.oid = c.conrelid
|
||
|
|
WHERE t.relname = 'channel_monitor_request_templates'
|
||
|
|
AND c.conname = 'channel_monitor_request_templates_provider_check';
|
||
|
|
|
||
|
|
IF template_constraint_def IS NULL OR position('grok' IN template_constraint_def) = 0 THEN
|
||
|
|
ALTER TABLE channel_monitor_request_templates
|
||
|
|
DROP CONSTRAINT IF EXISTS channel_monitor_request_templates_provider_check;
|
||
|
|
ALTER TABLE channel_monitor_request_templates
|
||
|
|
ADD CONSTRAINT channel_monitor_request_templates_provider_check
|
||
|
|
CHECK (provider IN ('openai', 'anthropic', 'gemini', 'grok'));
|
||
|
|
END IF;
|
||
|
|
END $$;
|