db.go 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. package sqlite
  2. import (
  3. "fmt"
  4. "github.com/IceWhaleTech/CasaOS/pkg/utils/file"
  5. model2 "github.com/IceWhaleTech/CasaOS/service/model"
  6. "gorm.io/driver/sqlite"
  7. "gorm.io/gorm"
  8. "time"
  9. )
  10. var gdb *gorm.DB
  11. func GetDb(projectPath string) *gorm.DB {
  12. if gdb != nil {
  13. return gdb
  14. }
  15. // 参考 https://github.com/go-sql-driver/mysql#dsn-data-source-name 获取详情
  16. //dsn := fmt.Sprintf("%v:%v@tcp(%v:%v)/%v?charset=utf8mb4&parseTime=True&loc=Local", m.User, m.PWD, m.IP, m.Port, m.DBName)
  17. //db, err := gorm.Open(mysql2.Open(dsn), &gorm.Config{})
  18. file.IsNotExistMkDir(projectPath + "/db/")
  19. db, err := gorm.Open(sqlite.Open(projectPath+"/db/casaOS.db"), &gorm.Config{})
  20. c, _ := db.DB()
  21. c.SetMaxIdleConns(10)
  22. c.SetMaxOpenConns(100)
  23. c.SetConnMaxIdleTime(time.Second * 1000)
  24. if err != nil {
  25. fmt.Println("连接数据失败!")
  26. panic("数据库连接失败")
  27. return nil
  28. }
  29. gdb = db
  30. err = db.AutoMigrate(&model2.TaskDBModel{}, &model2.AppNotify{}, &model2.AppListDBModel{})
  31. if err != nil {
  32. fmt.Println("检查和创建数据库出错", err)
  33. }
  34. return db
  35. }