/
githubmirror
/
photoprism
Обзор
Документация
Войти
/
githubmirror
/
photoprism
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
internal/entity/entity_save.go
34 строки
736 B
Michael Mayer
Go: Apply go fix modernizations across backend packages
20 фев 2026, 05:54
20 фев 2026, 05:54
a2b7615
Код
Авторство
О чём код?
package entity import ( "fmt" "strings" ) // Save tries to update an existing record and falls back to insert semantics, retrying on lock errors. func Save(m any, keyNames ...string) (err error) { defer func() { if r := recover(); r != nil { err = fmt.Errorf("save: %s (panic)", r) } }() // Try a regular update first. if err = Update(m, keyNames...); err == nil { return nil } // Automatically insert/update record as needed. if err = UnscopedDb().Save(m).Error; err == nil { return nil } // Try again if database was locked, return otherwise. if !strings.Contains(strings.ToLower(err.Error()), "lock") { return err } else if err = UnscopedDb().Save(m).Error; err == nil { return nil } return err }