sqlite.go 1.1 KB

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