#!/bin/bash MIGRATIONS_DIR="/migrations" MIGRATIONS_HISTORY="/config/.migrations" echo "[migrations] started" if [[ ! -d ${MIGRATIONS_DIR} ]]; then echo "[migrations] no migrations found" exit fi for MIGRATION in $(find ${MIGRATIONS_DIR}/* | sort -n); do NAME="$(basename "${MIGRATION}")" if [[ -f ${MIGRATIONS_HISTORY} ]] && grep -Fxq "${NAME}" ${MIGRATIONS_HISTORY}; then echo "[migrations] ${NAME}: skipped" continue fi echo "[migrations] ${NAME}: executing..." chmod +x "${MIGRATION}" EXIT_CODE=$(/bin/bash "${MIGRATION}"; echo $?) if [[ ${EXIT_CODE} -ne 0 ]]; then echo "[migrations] ${NAME}: failed with exit code ${EXIT_CODE}, contact support" exit "${EXIT_CODE}" fi echo "${NAME}" >> ${MIGRATIONS_HISTORY} echo "[migrations] ${NAME}: succeeded" done echo "[migrations] done"