mirror of
https://github.com/songquanpeng/message-pusher.git
synced 2024-05-03 08:45:04 +08:00
fix: fix options is not updated when using MySQL (close #55)
This commit is contained in:
parent
f5977581d3
commit
da4b7192fc
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user