File tree Expand file tree Collapse file tree 1 file changed +12
-4
lines changed Expand file tree Collapse file tree 1 file changed +12
-4
lines changed Original file line number Diff line number Diff line change @@ -2,11 +2,12 @@ package db
2
2
3
3
import (
4
4
"errors"
5
- "reflect"
6
5
7
6
"gorm.io/gorm"
8
7
)
9
8
9
+ const zos4Key = "zos_4"
10
+
10
11
func (db * Database ) SetZOSVersion (version ZosVersion ) error {
11
12
var current ZosVersion
12
13
result := db .gormDB .Where (ZosVersion {Key : ZOS4VersionKey }).Attrs (ZosVersion {Version : version .Version }).FirstOrCreate (& current )
@@ -16,18 +17,25 @@ func (db *Database) SetZOSVersion(version ZosVersion) error {
16
17
}
17
18
18
19
if result .RowsAffected == 0 {
19
- if reflect .DeepEqual (current , version ) {
20
+ update := map [string ]any {}
21
+ if current .Version != version .Version {
22
+ update ["version" ] = version .Version
23
+ }
24
+ if current .SafeToUpgrade != version .SafeToUpgrade {
25
+ update ["safe_to_upgrade" ] = version .SafeToUpgrade
26
+ }
27
+ if len (update ) == 0 {
20
28
return ErrVersionAlreadySet
21
29
}
22
30
return db .gormDB .Model (& current ).
23
- Select ( "version" ).
31
+ Where ( "key = ?" , zos4Key ).
24
32
Updates (version ).Error
25
33
}
26
34
return nil
27
35
}
28
36
29
37
func (db * Database ) GetZOSVersion () (version ZosVersion , err error ) {
30
- if err := db .gormDB .Where ("key = ?" , "zos_4" ).First (& version ).Error ; err != nil {
38
+ if err := db .gormDB .Where ("key = ?" , zos4Key ).First (& version ).Error ; err != nil {
31
39
if errors .Is (err , gorm .ErrRecordNotFound ) {
32
40
return version , ErrRecordNotFound
33
41
}
You can’t perform that action at this time.
0 commit comments