| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- package orm
- import (
- "fmt"
- "gitea.ckfah.com/go-script/logger"
- "github.com/go-xorm/xorm"
- "os"
- "strings"
- "sync"
- "text/template"
- )
- type DbType string
- // type
- const (
- Mysql = DbType("mysql")
- )
- // template name
- const (
- daoTemplateName = "daoTemplateName"
- dtoTemplateName = "dtoTemplateName"
- modelTemplateName = "modelTemplateName"
- )
- // other
- const (
- sep = string(os.PathSeparator)
- fileSuffix = ".go"
- )
- type Template interface {
- Run(template *template.Template) ([]byte, error)
- }
- type DbMeta interface {
- GetTables() ([]string, error)
- }
- type Config struct {
- wg sync.WaitGroup
- daoTemplate *template.Template
- modelTemplate *template.Template
- dtoTemplate *template.Template
- // db
- DbType DbType
- DbName string
- DbPort int
- DbHost string
- DbUserName string
- DbPassword string
- DbCharset string
- // cnn
- engine *xorm.Engine
- // save
- SaveFile string
- // table
- TableNames []string
- // template
- GeneratorModel bool
- GeneratorDao bool
- GeneratorDto bool
- DaoPackageName string
- ModelPackageName string
- DtoPackageName string
- Tags []string
- }
- func FillDNS(userName string, password string, host string, port int, dbName string, charset string) string {
- return fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=%s&parseTime=True&loc=Local",
- userName,
- password,
- host,
- port,
- dbName,
- charset,
- )
- }
- func GetDbType(str string) DbType {
- lower := strings.ToLower(str)
- switch DbType(lower) {
- case Mysql:
- return Mysql
- default:
- logger.FatalF("not support type")
- return Mysql
- }
- }
|