fix(db): track state of migrations and execute them again when necessary

This commit is contained in:
Peter 2025-02-13 09:29:47 +01:00
parent 264b30e8a2
commit 2d71a4a132
Signed by: prskr
GPG key ID: F56BED6903BC5E37
15 changed files with 59 additions and 33 deletions
api/v1alpha1

View file

@ -429,12 +429,12 @@ func (s DatabaseStatus) IsMigrationUpToDate(name string, hash []byte) (found boo
return false, false
}
func (s DatabaseStatus) RecordMigrationCondition(name string, hash []byte, err error) {
func (s *DatabaseStatus) RecordMigrationCondition(name string, hash []byte, err error) error {
var (
now = time.Now()
newStatus = MigrationConditionStatusApplied
lastProbeTime = metav1.NewTime(now)
lastTransitionTime metav1.Time
lastTransitionTime = metav1.NewTime(now)
message string
)
@ -456,8 +456,22 @@ func (s DatabaseStatus) RecordMigrationCondition(name string, hash []byte, err e
cond.LastTransitionTime = lastTransitionTime
cond.Reason = "Outdated"
cond.Message = message
s.MigrationConditions[idx] = cond
return err
}
}
s.MigrationConditions = append(s.MigrationConditions, MigrationScriptCondition{
Name: name,
Hash: hash,
Status: newStatus,
LastProbeTime: lastProbeTime,
LastTransitionTime: lastTransitionTime,
Message: message,
})
return err
}
type CoreConditionType string