| 298 | } |
| 299 | |
| 300 | func newDB(pathItem string) (*gorm.DB, error) { |
| 301 | dbFile := "" |
| 302 | switch { |
| 303 | case strings.HasPrefix(pathItem, "/core/xpack") || strings.HasPrefix(pathItem, "/xpack"): |
| 304 | dbFile = path.Join(global.CONF.Base.InstallDir, "1panel/db/xpack.db") |
| 305 | case strings.HasPrefix(pathItem, "/core/enterprise") || strings.HasPrefix(pathItem, "/enterprise"): |
| 306 | dbFile = path.Join(global.CONF.Base.InstallDir, "1panel/db/enterprise.db") |
| 307 | case strings.HasPrefix(pathItem, "/core"): |
| 308 | dbFile = path.Join(global.CONF.Base.InstallDir, "1panel/db/core.db") |
| 309 | default: |
| 310 | dbFile = path.Join(global.CONF.Base.InstallDir, "1panel/db/agent.db") |
| 311 | } |
| 312 | |
| 313 | db, _ := gorm.Open(sqlite.Open(dbFile), &gorm.Config{ |
| 314 | DisableForeignKeyConstraintWhenMigrating: true, |
| 315 | }) |
| 316 | sqlDB, err := db.DB() |
| 317 | if err != nil { |
| 318 | return nil, err |
| 319 | } |
| 320 | sqlDB.SetMaxOpenConns(4) |
| 321 | sqlDB.SetMaxIdleConns(1) |
| 322 | sqlDB.SetConnMaxIdleTime(15 * time.Minute) |
| 323 | sqlDB.SetConnMaxLifetime(time.Hour) |
| 324 | return db, nil |
| 325 | } |
| 326 | |
| 327 | func closeDB(db *gorm.DB) { |
| 328 | sqlDB, err := db.DB() |