
- Import golang-migrate dependencies - Update dependencies Signed-off-by: Jan Tytgat <jan.tytgat@corelayer.eu>
31 lines
712 B
Go
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
|
|
}
|