Skip to content

Commit 43d8ddc

Browse files
committed
Add retry logic to pg_restore
Resolves #26
1 parent fefcbdf commit 43d8ddc

File tree

1 file changed

+21
-7
lines changed

1 file changed

+21
-7
lines changed

docker-entrypoint.sh

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
#!/usr/bin/env bash
22

3+
set -e
4+
35
run_sql() {
46
PGSSLMODE="require" \
57
PGPASSWORD="${FEATURES_DB_PASSWORD}" \
@@ -72,14 +74,26 @@ if ! features_database_exists; then
7274
< /app/ddl/schema.sql run_sql "${FEATURES_DB_NAME}"
7375
log "...done, schema is now set up"
7476

75-
log "Fetching database dump..."
76-
curl --silent "${FEATURES_DB_DUMP_URL}" > "${dump_file}"
77-
log "...done, database dump is now available"
78-
79-
log "Ingesting database dump..."
80-
load_features_dump "${dump_file}"
77+
retries=0
78+
max_retries=5
79+
db_is_setup=0
80+
while [ "${retries}" -lt "${max_retries}" ]; do
81+
log "Fetching database dump..."
82+
curl --silent "${FEATURES_DB_DUMP_URL}" > "${dump_file}"
83+
log "...done, database dump is now available"
84+
85+
log "Ingesting database dump..."
86+
if load_features_dump "${dump_file}"; then
87+
log "...done, database dump is now ingested"
88+
db_is_setup=1
89+
break
90+
else
91+
retries="$((retries + 1))"
92+
log "...error ingesting database dump, retrying"
93+
fi
94+
done
95+
if [ "${db_is_setup}" -ne 1 ]; then fail "Unable to setup database in ${max_retries} retries"; fi
8196
rm "${dump_file}"
82-
log "...done, database dump is now ingested"
8397

8498
log "Setting up indices..."
8599
< /app/ddl/indices.sql run_sql "${FEATURES_DB_NAME}"

0 commit comments

Comments
 (0)