database.go 825 B

1234567891011121314151617181920212223242526272829303132333435
  1. package common
  2. import (
  3. "fmt"
  4. "github.com/spf13/viper"
  5. "gorm.io/driver/mysql"
  6. "gorm.io/gorm"
  7. "log"
  8. "net/url"
  9. )
  10. var DB *gorm.DB
  11. func InitDB() *gorm.DB {
  12. host := viper.GetString("datasource.host")
  13. port := viper.GetString("datasource.port")
  14. database := viper.GetString("datasource.database")
  15. username := viper.GetString("datasource.username")
  16. password := viper.GetString("datasource.password")
  17. charset := viper.GetString("datasource.charset")
  18. loc := viper.GetString("datasource.loc")
  19. args := fmt.Sprintf("%s:%s@(%s:%s)/%s?charset=%s&parseTime=true&loc=%s",
  20. username, password, host, port, database, charset, url.QueryEscape(loc))
  21. db, err := gorm.Open(mysql.Open(args), &gorm.Config{})
  22. if err != nil {
  23. log.Println("初始化数据库失败")
  24. }
  25. DB = db
  26. return db
  27. }
  28. func GetDB() *gorm.DB {
  29. return DB
  30. }