diff --git a/database.go b/database.go index b86b5dcd7b8c93ed81a97256c9680a637b4a9953..155a2444ad8f3f3b899b9724f8ad8cf8c06bdce0 100644 --- a/database.go +++ b/database.go @@ -142,12 +142,25 @@ func update(job *JobPersistence, db *gorm.DB) error { Info("Stats runCount is 0, skipping update") } - if err := tx.Model(job.Stats). - Select("*"). + // if jobs.Stats not exists in database + // create new record + // else update existing record + var stats JobStats + tx.Model(job.Stats).Where("job_id = ?", job.ID). + Assign(job.Stats). Omit("job_id", "created_at"). - Updates(job.Stats).Error; err != nil { - return err // Fehler beim Update - } + FirstOrCreate(&stats) + + //if tx.Error != nil { + // return tx.Error + //} + + //if err := tx.Model(job.Stats). + // Select("*"). + // Omit("job_id", "created_at"). + // Updates(job.Stats).Error; err != nil { + // return err // Fehler beim Update + //} } for i := range job.Logs { @@ -156,7 +169,7 @@ func update(job *JobPersistence, db *gorm.DB) error { // no error handling, if it fails, it fails } - return nil + return tx.Error }) }