Added CompareVersion()
- Import golang-migrate dependencies - Update dependencies Signed-off-by: Jan Tytgat <jan.tytgat@corelayer.eu>
This commit is contained in:
30
pkg/migrate_validation/check.go
Normal file
30
pkg/migrate_validation/check.go
Normal 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
|
||||
}
|
Reference in New Issue
Block a user