Files
Jan Tytgat cdbedb7e6a Added CompareVersion()
- Import golang-migrate dependencies
- Update dependencies

Signed-off-by: Jan Tytgat <jan.tytgat@corelayer.eu>
2025-04-17 00:08:33 +02:00

31 lines
712 B
Go

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
}