(pathItem string)
| 168 | } |
| 169 | |
| 170 | func newResolveDB(pathItem string) (*gorm.DB, error) { |
| 171 | dbFile := "" |
| 172 | switch { |
| 173 | case strings.HasPrefix(pathItem, "/core"): |
| 174 | dbFile = path.Join(global.CONF.Base.InstallDir, "1panel/db/core.db") |
| 175 | case strings.HasPrefix(pathItem, "/xpack"): |
| 176 | dbFile = path.Join(global.CONF.Base.InstallDir, "1panel/db/xpack.db") |
| 177 | default: |
| 178 | dbFile = path.Join(global.CONF.Base.InstallDir, "1panel/db/agent.db") |
| 179 | } |
| 180 | |
| 181 | db, err := gorm.Open(sqlite.Open(dbFile), &gorm.Config{ |
| 182 | DisableForeignKeyConstraintWhenMigrating: true, |
| 183 | }) |
| 184 | if err != nil { |
| 185 | return nil, err |
| 186 | } |
| 187 | sqlDB, err := db.DB() |
| 188 | if err != nil { |
| 189 | return nil, err |
| 190 | } |
| 191 | sqlDB.SetMaxOpenConns(4) |
| 192 | sqlDB.SetMaxIdleConns(1) |
| 193 | sqlDB.SetConnMaxIdleTime(15 * time.Minute) |
| 194 | sqlDB.SetConnMaxLifetime(time.Hour) |
| 195 | return db, nil |
| 196 | } |
| 197 | |
| 198 | func closeResolveDB(db *gorm.DB) { |
| 199 | sqlDB, err := db.DB() |
no outgoing calls
no test coverage detected