39 lines
1.0 KiB
Cheetah
39 lines
1.0 KiB
Cheetah
{{/* Base constraint template */}}
|
|
{{- define "constraint_base" -}}
|
|
ALTER TABLE {{.SchemaName}}.{{.TableName}}
|
|
ADD CONSTRAINT {{.ConstraintName}}
|
|
{{block "constraint_definition" .}}{{end}};
|
|
{{- end -}}
|
|
|
|
{{/* Drop constraint with check */}}
|
|
{{- define "drop_constraint_safe" -}}
|
|
DO $$
|
|
BEGIN
|
|
IF EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = '{{.SchemaName}}'
|
|
AND table_name = '{{.TableName}}'
|
|
AND constraint_name = '{{.ConstraintName}}'
|
|
) THEN
|
|
ALTER TABLE {{.SchemaName}}.{{.TableName}}
|
|
DROP CONSTRAINT {{.ConstraintName}};
|
|
END IF;
|
|
END;
|
|
$$;
|
|
{{- end -}}
|
|
|
|
{{/* Add constraint with existence check */}}
|
|
{{- define "add_constraint_safe" -}}
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = '{{.SchemaName}}'
|
|
AND table_name = '{{.TableName}}'
|
|
AND constraint_name = '{{.ConstraintName}}'
|
|
) THEN
|
|
{{template "constraint_base" .}}
|
|
END IF;
|
|
END;
|
|
$$;
|
|
{{- end -}} |