diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 77d292b2e..0cbb2afcf 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -89,6 +89,14 @@ repos: language: script files: ^installer/config.yml$ + - id: legacy-migrations-version + name: legacy-migrations-version + description: Ensure valid schema version for migrations + entry: tools/legacy-migrations-version.sh + pass_filenames: false + language: script + files: ^api/libretime_api/legacy/migrations + - id: legacy-assets-checksum-update name: legacy-assets-checksum-update description: Update legacy assets checksum diff --git a/tools/legacy-migrations-version.sh b/tools/legacy-migrations-version.sh new file mode 100755 index 000000000..8ae31e0d6 --- /dev/null +++ b/tools/legacy-migrations-version.sh @@ -0,0 +1,20 @@ +#!/usr/bin/env bash + +set -u + +error() { + echo >&2 "error: $*" + exit 1 +} + +migrations="api/libretime_api/legacy/migrations" +version_file="$migrations/__init__.py" + +latest_migration="$(find "$migrations" -name '[0-9][0-9][0-9][0-9]_*.py' | sort | tail -n 1)" + +latest_migration_version="$(basename "$latest_migration" | cut -d '_' -f 1)" +latest_migration_version="$((10#$latest_migration_version))" # Strip leading zeros + +sed \ + -i "s#^LEGACY_SCHEMA_VERSION =.*#LEGACY_SCHEMA_VERSION = \"$latest_migration_version\"#" \ + "$version_file"