From b6d58d0c42ea197f040c54e468ec284ec0023054 Mon Sep 17 00:00:00 2001 From: Timothy Messier Date: Tue, 14 Mar 2023 12:57:07 -0400 Subject: [PATCH] ci(schema-diff): Generate one file per constraint (#3082) This yeilds a better diff when constraints are changed. --- .github/workflows/schema-diff.yml | 4 ++-- scripts/schema-diff.sh | 13 +++++++------ 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/.github/workflows/schema-diff.yml b/.github/workflows/schema-diff.yml index 58fbd594ed..32cee482e2 100644 --- a/.github/workflows/schema-diff.yml +++ b/.github/workflows/schema-diff.yml @@ -74,8 +74,8 @@ jobs: #### Indexes $(getdiff .schema-diff/indexes.diff) - #### Post Data - $(getdiff .schema-diff/post_data.diff) + #### Constraints + $(getdiff .schema-diff/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 383b52c57c..2c695ab437 100755 --- a/scripts/schema-diff.sh +++ b/scripts/schema-diff.sh @@ -42,7 +42,8 @@ extract() { "${tmp_dir}/tables_${suffix}" \ "${tmp_dir}/views_${suffix}" \ "${tmp_dir}/triggers_${suffix}" \ - "${tmp_dir}/indexes_${suffix}" + "${tmp_dir}/indexes_${suffix}" \ + "${tmp_dir}/constraints_${suffix}" echo "extracting function definitions from ${dump}" while read -r f; do @@ -74,8 +75,10 @@ extract() { pg_restore -s -O -I "${d}" -f - "${dump}" | tr '[:upper:]' '[:lower:]' > "${tmp_dir}/indexes_${suffix}/${dname}.sql" done < <(pg_restore -l "${dump}" -f - | awk '$4 == "INDEX" {for(i=6;i "${tmp_dir}/post_data_${suffix}.sql" + while read -r c; do + 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