mirror of
https://codeberg.org/PostERG/xamxam.git
synced 2026-06-25 16:19:19 +02:00
ThesisEditController::save() previously only regenerated the identifier when the year field changed during an edit. If a thesis had its year corrected in a past edit (or via other means) and the identifier still carried the old year prefix, subsequent edits that didn't touch the year field would leave the mismatched identifier in place. Now saves() also checks whether the existing identifier's 4-digit prefix matches the thesis year, and regenerates if not — regardless of whether year changed in the current edit. The migration runner (run.php) only scanned for .sql files, so PHP migrations (013, 016, 018, 038) were never auto-applied. Extended the runner to also discover and execute .php migrations in a subprocess. If a PHP migration fails with an idempotent error (no such column, already exists, duplicate column), the runner treats it as already-applied and continues rather than aborting — preventing a stale migration like 016 (banner_path already dropped by 028) from blocking migrations that come after it alphabetically (e.g. 038). Updated migrations 016 and 038 to accept an optional $argv[1] DB path. Fixed 016 to gracefully handle the banner_path column already being gone (exit 0 instead of fatal).