summaryrefslogtreecommitdiff
path: root/scripts/schema_changed.sh
blob: f564f717e9558448ea63f7346671226e3ec38da1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/bin/sh

schema_changed() {
  if [ ! -z "$(git diff --name-only -- db/structure.sql)" ]; then
    printf "Schema changes are not cleanly committed to db/structure.sql\n"
    printf "The diff is as follows:\n"
    diff=$(git diff -p --binary -- db/structure.sql)
    printf "%s" "$diff"
    exit 1
  else
    printf "Schema changes are correctly applied to db/structure.sql\n"
  fi

  if [ ! -z "$(git add -A -n db/schema_migrations)" ]; then
    printf "Schema version files have not been committed to the repository:\n"
    printf "The following files should be committed:\n"
    diff=$(git add -A -n db/schema_migrations)
    printf "%s" "$diff"
    exit 2
  else
    printf "Schema changes are correctly applied to db/structure.sql and db/schema_migrations/\n"
  fi
}

schema_changed