Added CompareVersion()

- Import golang-migrate dependencies
- Update dependencies

Signed-off-by: Jan Tytgat <jan.tytgat@corelayer.eu>
This commit is contained in:
Jan Tytgat
2025-04-17 00:08:33 +02:00
parent 50a3dbbfbf
commit cdbedb7e6a
4 changed files with 55 additions and 1 deletions

View File

@ -0,0 +1,30 @@
package migrate_validation
import (
"errors"
"fmt"
"github.com/golang-migrate/migrate/v4"
"github.com/golang-migrate/migrate/v4/database"
"github.com/golang-migrate/migrate/v4/source"
)
func CompareVersion(src source.Driver, dst database.Driver) error {
// Determine database migration version
dstVersion, dstDirty, dstErr := dst.Version()
if dstDirty || (dstErr != nil && !errors.Is(dstErr, migrate.ErrNilVersion)) {
return dstErr
}
// Determine source migration version
srcVersion, srcErr := src.Next(uint(dstVersion))
if srcErr != nil {
return srcErr
}
if srcVersion != uint(dstVersion) {
return fmt.Errorf("version mismatch: src=%d dst=%d", srcVersion, dstVersion)
}
return nil
}