sqlite3_driver.go 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. // +build sqlite3
  2. package database
  3. import (
  4. "log"
  5. "os"
  6. "time"
  7. "gorm.io/driver/sqlite"
  8. "gorm.io/gorm"
  9. "gorm.io/gorm/logger"
  10. "gorm.io/gorm/schema"
  11. "device-manage/common/global"
  12. "device-manage/tools/config"
  13. )
  14. type SqLite struct {
  15. }
  16. func (e *SqLite) Setup() {
  17. var err error
  18. global.Source = e.GetConnect()
  19. log.Println(global.Source)
  20. global.Eloquent, err = e.Open(e.GetDriver(), &gorm.Config{
  21. NamingStrategy: schema.NamingStrategy{
  22. SingularTable: true,
  23. },
  24. })
  25. if err != nil {
  26. log.Fatalf("%s connect error %v", e.GetDriver(), err)
  27. } else {
  28. log.Printf("%s connect success!", e.GetDriver())
  29. }
  30. if global.Eloquent.Error != nil {
  31. log.Fatalf("database error %v", global.Eloquent.Error)
  32. }
  33. if config.LoggerConfig.EnabledDB {
  34. global.Eloquent.Logger = logger.New(log.New(os.Stdout, "\r\n", log.LstdFlags), logger.Config{
  35. SlowThreshold: time.Second,
  36. Colorful: true,
  37. LogLevel: logger.Info,
  38. })
  39. }
  40. }
  41. // 打开数据库连接
  42. func (*SqLite) Open(conn string, cfg *gorm.Config) (db *gorm.DB, err error) {
  43. eloquent, err := gorm.Open(sqlite.Open(conn), cfg)
  44. return eloquent, err
  45. }
  46. func (e *SqLite) GetConnect() string {
  47. return config.DatabaseConfig.Source
  48. }
  49. func (e *SqLite) GetDriver() string {
  50. return config.DatabaseConfig.Driver
  51. }