init.go 613 B

1234567891011121314151617181920212223242526272829303132333435
  1. package models
  2. import (
  3. "database/sql"
  4. "time"
  5. "xorm.io/xorm/names"
  6. "github.com/go-kratos/kratos/v2/log"
  7. "xorm.io/xorm"
  8. _ "github.com/go-sql-driver/mysql"
  9. )
  10. type Mysql struct {
  11. XDB *xorm.Engine
  12. DB *sql.DB
  13. log *log.Helper
  14. }
  15. func NewMysql(source string, logger log.Logger) (*Mysql, error) {
  16. orm, err := xorm.NewEngine("mysql", source)
  17. if err != nil {
  18. return nil, err
  19. }
  20. orm.TZLocation, _ = time.LoadLocation("Asia/Shanghai")
  21. orm.SetMapper(names.LintGonicMapper)
  22. m := &Mysql{
  23. XDB: orm,
  24. DB: orm.DB().DB,
  25. log: log.NewHelper(log.With(logger, "module", "models/init")),
  26. }
  27. return m, nil
  28. }