Skip to content

Commit

Permalink
fix: fix options is not updated when using MySQL (close #55)
Browse files Browse the repository at this point in the history
  • Loading branch information
songquanpeng committed Apr 19, 2023
1 parent f597758 commit da4b719
Showing 1 changed file with 8 additions and 7 deletions.
15 changes: 8 additions & 7 deletions model/option.go
Original file line number Diff line number Diff line change
Expand Up @@ -59,14 +59,15 @@ func InitOptionMap() {
func UpdateOption(key string, value string) error {
// Save to database first
option := Option{
Key: key,
Value: value,
}
// When updating with struct it will only update non-zero fields by default
// So we have to use Select here
if DB.Model(&option).Where("key = ?", key).Update("value", option.Value).RowsAffected == 0 {
DB.Create(&option)
Key: key,
}
// https://gorm.io/docs/update.html#Save-All-Fields
DB.FirstOrCreate(&option, Option{Key: key})
option.Value = value
// Save is a combination function.
// If save value does not contain primary key, it will execute Create,
// otherwise it will execute Update (with all fields).
DB.Save(&option)
// Update OptionMap
updateOptionMap(key, value)
return nil
Expand Down

0 comments on commit da4b719

Please sign in to comment.