mirror of https://github.com/go-sonic/sonic.git
feat: add gen script
parent
f6b0328b6c
commit
6acf8c1114
@ -0,0 +1,70 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"gorm.io/driver/mysql"
|
||||
"gorm.io/driver/sqlite"
|
||||
"gorm.io/gorm"
|
||||
|
||||
"gorm.io/gen"
|
||||
)
|
||||
|
||||
const MySQLDSN = ""
|
||||
|
||||
var DB *gorm.DB
|
||||
|
||||
func init() {
|
||||
DB = ConnectDB(MySQLDSN).Debug()
|
||||
}
|
||||
|
||||
var dataMap = map[string]func(gorm.ColumnType) (dataType string){}
|
||||
|
||||
func main() {
|
||||
g := gen.NewGenerator(gen.Config{
|
||||
OutPath: "../../dal",
|
||||
ModelPkgPath: "../../model/entity",
|
||||
Mode: gen.WithDefaultQuery,
|
||||
|
||||
WithUnitTest: false,
|
||||
//FieldNullable: true,
|
||||
//FieldCoverable: true,
|
||||
FieldWithIndexTag: true,
|
||||
//FieldSignable: true,
|
||||
FieldWithTypeTag: true,
|
||||
})
|
||||
|
||||
g.WithModelNameStrategy(func(tableName string) (modelName string) {
|
||||
if tableName == "meta" {
|
||||
return "Meta"
|
||||
}
|
||||
return DB.NamingStrategy.SchemaName(tableName)
|
||||
})
|
||||
g.UseDB(DB)
|
||||
|
||||
//g.WithDataTypeMap(dataMap)
|
||||
//g.WithJSONTagNameStrategy(func(c string) string { return "-" })
|
||||
//
|
||||
//g.ApplyBasic(dto.AttachmentDTO{})
|
||||
g.ApplyBasic(g.GenerateAllTable()...)
|
||||
g.GenerateAllTable()
|
||||
|
||||
g.Execute()
|
||||
}
|
||||
|
||||
func ConnectDB(dsn string) (db *gorm.DB) {
|
||||
var err error
|
||||
|
||||
if strings.HasSuffix(dsn, "sqlite.db") {
|
||||
db, err = gorm.Open(sqlite.Open(dsn), &gorm.Config{})
|
||||
} else {
|
||||
db, err = gorm.Open(mysql.Open(dsn))
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
panic(fmt.Errorf("connect db fail: %w", err))
|
||||
}
|
||||
|
||||
return db
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
#!/bin/bash
|
||||
|
||||
PROJECT_DIR=$(dirname "$0")
|
||||
GENERATE_DIR="$PROJECT_DIR/gen"
|
||||
|
||||
cd "$GENERATE_DIR" || exit
|
||||
|
||||
echo "Start Generating"
|
||||
go run .
|
Loading…
Reference in New Issue