|
1 | 1 | #!/usr/bin/env bash |
2 | 2 |
|
| 3 | +set -e |
| 4 | + |
3 | 5 | run_sql() { |
4 | 6 | PGSSLMODE="require" \ |
5 | 7 | PGPASSWORD="${FEATURES_DB_PASSWORD}" \ |
@@ -72,14 +74,26 @@ if ! features_database_exists; then |
72 | 74 | < /app/ddl/schema.sql run_sql "${FEATURES_DB_NAME}" |
73 | 75 | log "...done, schema is now set up" |
74 | 76 |
|
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 |
81 | 96 | rm "${dump_file}" |
82 | | - log "...done, database dump is now ingested" |
83 | 97 |
|
84 | 98 | log "Setting up indices..." |
85 | 99 | < /app/ddl/indices.sql run_sql "${FEATURES_DB_NAME}" |
|
0 commit comments