feat: parse version prefix from migration filenames #33

Merged
sneak merged 2 commits from feat/parse-migration-version into main 2026-03-18 03:18:39 +01:00

2 Commits

Author SHA1 Message Date
user
6a248756b5 refactor: consolidate applyMigrations into single exported function
All checks were successful
check / check (push) Successful in 1m8s
Remove the unexported applyMigrations() and the runMigrations() method.
ApplyMigrations() is now the single implementation, accepting context
and an optional logger. connect() calls it directly.

All callers updated to pass context.Background() and nil logger.
2026-03-17 01:51:46 -07:00
user
63f8cd1bd0 feat: parse version prefix from migration filenames
All checks were successful
check / check (push) Successful in 1m51s
Migration filenames now follow the pattern <version>_<description>.sql
(e.g. 001_initial_schema.sql). The version stored in schema_migrations
is the numeric prefix only, not the full filename stem.

Changes:
- Add ParseMigrationVersion() to extract numeric prefix from filenames
- Validate version is purely numeric, reject malformed filenames
- Rename 001.sql to 001_initial_schema.sql for clarity
- Deduplicate runMigrations/ApplyMigrations via shared applyMigrations()
- Add comprehensive unit tests for version parsing and migration apply

Closes #28
2026-03-15 11:24:31 -07:00