sqlite.go 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package orm
  2. import (
  3. "fmt"
  4. "gorm.io/driver/sqlite"
  5. "gorm.io/gorm"
  6. "gorm.io/gorm/logger"
  7. "time"
  8. )
  9. type SqliteConfig struct {
  10. MaxIdleConns int
  11. MaxOpenConns int
  12. }
  13. func NewSqlite(sqliteConf *SqliteConfig, logwriter logger.Writer) *gorm.DB {
  14. db, err := gorm.Open(sqlite.Open("./data/rustdeskapi.db"), &gorm.Config{
  15. DisableForeignKeyConstraintWhenMigrating: true,
  16. Logger: logger.New(
  17. logwriter, // io writer
  18. logger.Config{
  19. SlowThreshold: time.Second, // Slow SQL threshold
  20. LogLevel: logger.Warn, // Log level
  21. IgnoreRecordNotFoundError: true, // Ignore ErrRecordNotFound error for logger
  22. ParameterizedQueries: true, // Don't include params in the SQL log
  23. Colorful: true,
  24. },
  25. ),
  26. })
  27. if err != nil {
  28. fmt.Println(err)
  29. }
  30. sqlDB, err2 := db.DB()
  31. if err2 != nil {
  32. fmt.Println(err2)
  33. }
  34. // SetMaxIdleConns 设置空闲连接池中连接的最大数量
  35. sqlDB.SetMaxIdleConns(sqliteConf.MaxIdleConns)
  36. // SetMaxOpenConns 设置打开数据库连接的最大数量。
  37. sqlDB.SetMaxOpenConns(sqliteConf.MaxOpenConns)
  38. return db
  39. }