sqlite: serialize access on a single connection (#30902)

This commit is contained in:
andig 2026-07-10 07:57:26 +02:00 • committed by GitHub
parent cc5ba51c31
commit ad4324bb66
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -73,9 +73,20 @@ func New(driver, dsn string) (*gorm.DB, error) {
return nil, fmt.Errorf("invalid database type: %s not in [sqlite]", driver)
}
return gorm.Open(dialect, &gorm.Config{
db, err := gorm.Open(dialect, &gorm.Config{
Logger: &Logger{util.NewLogger("db")},
})
if err != nil {
return nil, err
}
// sqlite allows a single writer; serialize on one connection so concurrent
// writes wait on busy_timeout instead of failing with SQLITE_BUSY.
if sqlDB, err := db.DB(); err == nil {
sqlDB.SetMaxOpenConns(1)
}
return db, nil
}
func NewInstance(driver, dsn string) error {