123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- package service
- import (
- "fmt"
- "gorm.io/driver/mysql"
- "gorm.io/gen"
- "gorm.io/gorm"
- "strings"
- "testing"
- )
- const MysqlConfig = "root:A119328118a@(localhost:3306)/poster?charset=utf8mb4&parseTime=True&loc=Local"
- func TestGEN(t *testing.T) {
-
- db, err := gorm.Open(mysql.Open(MysqlConfig))
- if err != nil {
- panic(fmt.Errorf("cannot establish db connection: %w", err))
- }
-
- g := gen.NewGenerator(gen.Config{
-
- OutPath: "./model",
- OutFile: "query_auto.go",
- ModelPkgPath: "./entity",
-
-
-
- Mode: gen.WithDefaultQuery | gen.WithQueryInterface,
-
- FieldNullable: true,
-
-
-
- FieldCoverable: false,
-
- FieldSignable: false,
-
- FieldWithIndexTag: false,
-
- FieldWithTypeTag: true,
- })
-
- g.UseDB(db)
-
-
- dataMap := map[string]func(detailType string) (dataType string){
- "tinyint": func(detailType string) (dataType string) { return "int64" },
- "smallint": func(detailType string) (dataType string) { return "int64" },
- "mediumint": func(detailType string) (dataType string) { return "int64" },
- "bigint": func(detailType string) (dataType string) { return "int64" },
- "int": func(detailType string) (dataType string) { return "int64" },
- }
-
- g.WithDataTypeMap(dataMap)
-
-
- jsonField := gen.FieldJSONTagWithNS(func(columnName string) (tagContent string) {
- toStringField := `balance, `
- if strings.Contains(toStringField, columnName) {
- return columnName + ",string"
- }
- return columnName
- })
-
-
-
- autoUpdateTimeField := gen.FieldGORMTag("update_time", "column:update_time;type:int unsigned;autoUpdateTime")
- autoCreateTimeField := gen.FieldGORMTag("create_time", "column:create_time;type:int unsigned;autoCreateTime")
- softDeleteField := gen.FieldType("delete_time", "soft_delete.DeletedAt")
-
- fieldOpts := []gen.ModelOpt{jsonField, autoCreateTimeField, autoUpdateTimeField, softDeleteField}
-
-
-
-
- allModel := g.GenerateAllTable(fieldOpts...)
-
-
-
-
-
-
-
-
-
-
-
- g.ApplyBasic(allModel...)
- g.Execute()
- }
|