@@ -402,11 +402,11 @@ async function normalizeRepoConfigs() {
402402 }
403403
404404 console . log ( 'Normalizing repo configs...' ) ;
405- const functionName = 'codra_replace_deprecated_model_' + Date . now ( ) ;
405+ const functionName = 'codra_replace_deprecated_model' ;
406406
407- console . log ( `Creating function: ${ functionName } ` ) ;
407+ console . log ( `Creating function: pg_temp. ${ functionName } ` ) ;
408408 await query ( `
409- CREATE FUNCTION public .${ functionName } (input jsonb, old_value text, new_value text)
409+ CREATE FUNCTION pg_temp .${ functionName } (input jsonb, old_value text, new_value text)
410410 RETURNS jsonb
411411 LANGUAGE sql
412412 IMMUTABLE
@@ -415,14 +415,14 @@ async function normalizeRepoConfigs() {
415415 WHEN 'string' THEN CASE WHEN input #>> '{}' = old_value THEN to_jsonb(new_value) ELSE input END
416416 WHEN 'array' THEN COALESCE(
417417 (
418- SELECT jsonb_agg(public .${ functionName } (value, old_value, new_value) ORDER BY ord)
418+ SELECT jsonb_agg(pg_temp .${ functionName } (value, old_value, new_value) ORDER BY ord)
419419 FROM jsonb_array_elements(input) WITH ORDINALITY AS item(value, ord)
420420 ),
421421 '[]'::jsonb
422422 )
423423 WHEN 'object' THEN COALESCE(
424424 (
425- SELECT jsonb_object_agg(key, public .${ functionName } (value, old_value, new_value))
425+ SELECT jsonb_object_agg(key, pg_temp .${ functionName } (value, old_value, new_value))
426426 FROM jsonb_each(input)
427427 ),
428428 '{}'::jsonb
@@ -440,15 +440,15 @@ async function normalizeRepoConfigs() {
440440 main_model = CASE WHEN main_model = $1 THEN $2 ELSE main_model END,
441441 fallback_models = CASE
442442 WHEN fallback_models IS NULL THEN NULL
443- ELSE public .${ functionName } (fallback_models, $1, $2)
443+ ELSE pg_temp .${ functionName } (fallback_models, $1, $2)
444444 END,
445445 size_overrides = CASE
446446 WHEN size_overrides IS NULL THEN NULL
447- ELSE public .${ functionName } (size_overrides, $1, $2)
447+ ELSE pg_temp .${ functionName } (size_overrides, $1, $2)
448448 END,
449449 parsed_json = CASE
450450 WHEN parsed_json IS NULL THEN NULL
451- ELSE public .${ functionName } (parsed_json, $1, $2)
451+ ELSE pg_temp .${ functionName } (parsed_json, $1, $2)
452452 END
453453 WHERE main_model = $1
454454 OR fallback_models::text LIKE '%' || $1 || '%'
@@ -458,13 +458,16 @@ async function normalizeRepoConfigs() {
458458 [ kimiK25Model , kimiK26Model ] ,
459459 ) ;
460460
461- console . log ( `Dropping function: ${ functionName } ` ) ;
462- await query ( `DROP FUNCTION IF EXISTS public .${ functionName } (jsonb, text, text)` ) ;
461+ console . log ( `Dropping function: pg_temp. ${ functionName } ` ) ;
462+ await query ( `DROP FUNCTION IF EXISTS pg_temp .${ functionName } (jsonb, text, text)` ) ;
463463 console . log ( 'Repo configs normalized.' ) ;
464464}
465465
466466async function main ( ) {
467467 try {
468+ console . log ( 'Acquiring advisory lock...' ) ;
469+ await query ( 'SELECT pg_advisory_lock($1)' , [ migrationLockId ] ) ;
470+
468471 console . log ( 'Starting database migrations...' ) ;
469472 await ensureMigrationTable ( ) ;
470473
@@ -486,6 +489,8 @@ async function main() {
486489
487490 console . log ( 'Database migrations are up to date.' ) ;
488491 } finally {
492+ console . log ( 'Releasing advisory lock...' ) ;
493+ await query ( 'SELECT pg_advisory_unlock($1)' , [ migrationLockId ] ) ;
489494 await sql . end ( ) ;
490495 }
491496}
0 commit comments