Changelog
View SourceAll notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[0.2.1] - 2026-05-28
Fixed
- Correct edoc backtick-quote syntax in module header (
dir'` instead ofdir`) to fixedocdoc chunk generation ## [0.2.0] - 2026-05-28 ### Added - Multi-database support viadriverconfig key (defaults toerlang_migrate_pg) -erlang_migrate_mysql— MySQL 8+ driver usingmysql-otp,GET_LOCKadvisory lock -erlang_migrate_sqlite— SQLite 3+ driver usingesqlite, OTPglobal:set_lock-erlang_migrate_driverbehaviour — implement all 8 callbacks to add a new database -down/1— roll back all applied migrations -goto/2— jump to any version (auto up or down) -version/1now returns{ok, Version, Dirty}(was{ok, Version}) -lock_timeoutconfig key — advisory lock wait timeout in ms (default 15 000) -loggerconfig key — optionalfun(Level, Msg) -> okcallback - 33 EUnit tests for core logic + 24 tests for MySQL/SQLite drivers (57 total) ### Changed - **Single-row tracking table** — aligned with golang-migrate:set_versionis nowDELETE + INSERTso the table always holds at most one row;force/2is correct with no stale dirty rows - Zero hard dependencies —epgsql,mysql,esqliteare all opt-in; add only the driver you use to your ownrebar.config-tableconfig key — customise the tracking table name without touchingerlang_migratesource ### Fixed -force/2stale-dirty-row bug (multi-row model left dirty rows thatforcecould not clear; single-row model eliminates the issue) -erlang:phash2range — was16#7FFFFFFFFFFFFFFF(too large); now1 bsl 30## [0.1.0] - 2026-05-28 ### Added - Initial release - Plain SQL migration files (.up.sql/.down.sqlpairs) - Sequential integer versioning (000001_title.up.sql) - Migration state stored inschema_migrationstable in the target PostgreSQL database - PostgreSQL advisory lock — safe for concurrent multi-node Erlang clusters - Dirty state machine — blocks further runs after partial failure -force/2to recover from dirty state -up/1,up/2— apply all or N pending migrations -down/2— roll back N applied migrations -version/1— query current version -drop/1— drop theschema_migrationstable - Minimal dependencies: onlyepgsql- 7 EUnit tests for file scanner (erlang_migrate_source`)