diff --git a/.github/workflows/schema-diff.yml b/.github/workflows/schema-diff.yml index 32cee482e..08aa5a33b 100644 --- a/.github/workflows/schema-diff.yml +++ b/.github/workflows/schema-diff.yml @@ -76,6 +76,9 @@ jobs: #### Constraints $(getdiff .schema-diff/constraints.diff) + + #### Foreign Key Constraints + $(getdiff .schema-diff/fk_constraints.diff) EOF # Parse it through jq to build a valid json object. diff --git a/scripts/schema-diff.sh b/scripts/schema-diff.sh index 2c695ab43..70290a3c0 100755 --- a/scripts/schema-diff.sh +++ b/scripts/schema-diff.sh @@ -2,7 +2,6 @@ # Copyright (c) HashiCorp, Inc. # SPDX-License-Identifier: MPL-2.0 - die() { echo "$@" exit 255 @@ -43,7 +42,8 @@ extract() { "${tmp_dir}/views_${suffix}" \ "${tmp_dir}/triggers_${suffix}" \ "${tmp_dir}/indexes_${suffix}" \ - "${tmp_dir}/constraints_${suffix}" + "${tmp_dir}/constraints_${suffix}" \ + "${tmp_dir}/fk_constraints_${suffix}" echo "extracting function definitions from ${dump}" while read -r f; do @@ -79,6 +79,11 @@ extract() { cName="${c#* }" pg_restore --section=post-data -O -f - "${dump}" | grep ${cName} | tr '[:upper:]' '[:lower:]' > "${tmp_dir}/constraints_${suffix}/${cName}.sql" done < <(pg_restore -l "${dump}" -f - | awk '$4 == "CONSTRAINT" {for(i=6;i "${tmp_dir}/fk_constraints_${suffix}/${cName}.sql" + done < <(pg_restore -l "${dump}" -f - | awk '$4 == "FK" && $5 == "CONSTRAINT" {for(i=7;i