mirror of
https://github.com/TheBinaryNinja/tvapp2.git
synced 2026-06-04 12:45:41 -04:00
40 lines
1.0 KiB
Plaintext
Executable File
40 lines
1.0 KiB
Plaintext
Executable File
#!/usr/bin/with-contenv bash
|
||
# shellcheck shell=bash
|
||
|
||
MIGRATIONS_DIR="/migrations"
|
||
MIGRATIONS_HISTORY="/config/.migrations"
|
||
|
||
echo -e " Migrations : Started"
|
||
|
||
if [[ ! -d ${MIGRATIONS_DIR} ]]; then
|
||
echo -e " 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 -e " Migrations : ${NAME} › Skipped"
|
||
continue
|
||
fi
|
||
|
||
echo -e " Migrations : ${NAME} › Executing"
|
||
chmod +x "${MIGRATION}"
|
||
|
||
# #
|
||
# Execute migration script in a subshell to prevent it from modifying the current environment
|
||
# #
|
||
|
||
("${MIGRATION}")
|
||
EXIT_CODE=$?
|
||
if [[ ${EXIT_CODE} -ne 0 ]]; then
|
||
echo -e " Migrations : ${NAME} › Failed with exit code ${EXIT_CODE}"
|
||
exit "${EXIT_CODE}"
|
||
fi
|
||
|
||
echo "${NAME}" >>${MIGRATIONS_HISTORY}
|
||
echo -e " Migrations : ${NAME} › Success"
|
||
done
|
||
|
||
echo -e " Migrations : Complete"
|