31 wiersze
828 B
Bash
Executable File
31 wiersze
828 B
Bash
Executable File
#!/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"
|