Files
attune/migrations/20260129000001_fix_webhook_function_overload.sql
2026-02-04 17:46:30 -06:00

43 lines
1.8 KiB
SQL

-- Migration: Fix webhook function overload issue
-- Description: Drop the old enable_trigger_webhook(bigint) signature to resolve
-- "function is not unique" error when the newer version with config
-- parameter is present.
-- Date: 2026-01-29
-- Drop the old function signature from 20260120000001_add_webhook_support.sql
-- The newer version with JSONB config parameter should be the only one
DROP FUNCTION IF EXISTS enable_trigger_webhook(BIGINT);
-- The new signature with config parameter is already defined in
-- 20260127000001_consolidate_webhook_config.sql:
-- attune.enable_trigger_webhook(p_trigger_id BIGINT, p_config JSONB DEFAULT '{}'::jsonb)
-- Similarly, check and clean up any other webhook function overloads
-- Drop old disable_trigger_webhook if it has conflicts
DROP FUNCTION IF EXISTS disable_trigger_webhook(BIGINT);
-- Drop old regenerate_webhook_key if it has conflicts
DROP FUNCTION IF EXISTS regenerate_trigger_webhook_key(BIGINT);
-- Note: The current versions of these functions should be:
-- - attune.enable_trigger_webhook(BIGINT, JSONB DEFAULT '{}'::jsonb)
-- - attune.disable_trigger_webhook(BIGINT)
-- - attune.regenerate_trigger_webhook_key(BIGINT)
-- Verify functions exist after cleanup
DO $$
BEGIN
-- Check that enable_trigger_webhook exists with correct signature
-- Use current_schema() to work with both production (attune) and test schemas
IF NOT EXISTS (
SELECT 1 FROM pg_proc p
JOIN pg_namespace n ON p.pronamespace = n.oid
WHERE n.nspname = current_schema()
AND p.proname = 'enable_trigger_webhook'
AND pg_get_function_arguments(p.oid) LIKE '%jsonb%'
) THEN
RAISE EXCEPTION 'enable_trigger_webhook function with JSONB config not found after migration';
END IF;
END $$;