Internally Managed Migrations (#438)
This PR replaces Alembic-based system database migrations with a simpler internal system. Migrations are now an array of SQL strings in `_migration.py`. There is a new table `dbos.dbos_migrations` in the system database that keeps track of which has run. When initializing the system database, it looks up that table to see which migrations have already run and then runs the rest. This new scheme is fully backwards-compatible with the old (Alembic-based) migrations, as this PR also adds a final Alembic migration that creates the `dbos.dbos_migrations` table and inserts an initial version into it. We will move all DBOS languages (TypeScript, Go, Java) to this system and use exactly the same migrations for each to ensure system database compatibility across languages.
P
Peter Kraft committed
807d41e37d29c11e4950270106c3e99adccfa553
Parent: 231a336
Committed by GitHub <noreply@github.com>
on 8/25/2025, 6:33:16 PM