All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 57s
On startup, the app now checks if the database schema version matches the code. If there's a mismatch or no version exists, it automatically runs a full data migration before starting. - Add backend/version.py with SCHEMA_VERSION constant - Add backend/migration.py with extracted migration logic - Add SchemaVersion model to track DB version - Add version check functions to database.py - Update app.py lifespan to use check_and_migrate_if_needed() - Simplify migrate_csv_to_db.py to use shared logic Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
23 lines
645 B
Python
23 lines
645 B
Python
"""
|
|
Schema versioning for database migrations.
|
|
|
|
HOW TO USE:
|
|
- Bump SCHEMA_VERSION when making changes to database models
|
|
- This triggers an automatic full data reimport on next app startup
|
|
|
|
WHEN TO BUMP:
|
|
- Adding/removing columns in models.py
|
|
- Changing column types or constraints
|
|
- Modifying CSV column mappings in schemas.py
|
|
- Any change that requires fresh data import
|
|
"""
|
|
|
|
# Current schema version - increment when models change
|
|
SCHEMA_VERSION = 2
|
|
|
|
# Changelog for documentation
|
|
SCHEMA_CHANGELOG = {
|
|
1: "Initial schema with School and SchoolResult tables",
|
|
2: "Added pupil absence fields (reading, maths, gps, writing, science)",
|
|
}
|