1.8 KiB
1.8 KiB
id, title, status, assignee, created_date, labels, dependencies, references, priority
| id | title | status | assignee | created_date | labels | dependencies | references | priority | |
|---|---|---|---|---|---|---|---|---|---|
| ML-37 | Fix production migration strategy mismatch | Done | 2026-04-20 08:53 |
|
high |
Description
GitHub: created 2026-03-30 · updated 2026-03-30 · closed 2026-03-30
Summary
Production releases are configured to skip boot-time migrations even though the codebase and docs state that migrations run automatically on startup.
Why This Matters
A deploy can start successfully against an outdated schema, creating a real risk of runtime failures or subtle data corruption after deploys.
Evidence
MusicLibrary.ApplicationwiresEcto.Migratorwithskip: skip_migrations?().skip_migrations?/0returnstruewheneverRELEASE_NAMEis set (the release case).rel/overlays/bin/serveronly starts the release and does not runrel/overlays/bin/migrate.scripts/prod/deploy.hurltriggers a deploy and health checks, but does not invoke the migrate script.docs/architecture.mdanddocs/production-infrastructure.mdboth claim migrations run automatically on boot.
Affected Files
lib/music_library/application.exrel/overlays/bin/serverrel/overlays/bin/migratedocs/architecture.mddocs/production-infrastructure.md
Acceptance Criteria
- Production deploys cannot start on an unmigrated schema.
- The documented migration strategy matches the implemented one.
- There is at least one automated check covering the chosen behavior.
- #1 Production deploys cannot start on an unmigrated schema.
- #2 The documented migration strategy matches the implemented one.
- #3 There is at least one automated check covering the chosen behavior.