sqlite: serialize access on a single connection (#30902)
This commit is contained in:
parent
cc5ba51c31
commit
ad4324bb66
1 changed files with 12 additions and 1 deletions
|
|
@ -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 {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue