GithubHelp home page GithubHelp logo

gorm-gen-yaml's Introduction

gorm-gen-yaml

根据 yaml 配置文件生成数据库表的 model 文件及 dao 文件。

程序会根据配置文件中声明的表之间的依赖关系,按照顺序进行生成。让你摆锐复杂的依赖关系。

output 目录为根据下面配置生成出的文件。

配置

查看配置文件

调用

g := gen.NewGenerator(gen.Config{
    OutPath:      "./output/dao",
    Mode:         gen.WithoutContext | gen.WithDefaultQuery | gen.WithQueryInterface, // generate mode
    ModelPkgPath: "entity",
})
g.UseDB(db)
fieldOpts := []gen.ModelOpt{}
yamlgen.NewYamlGenerator("./gen.yaml").UseGormGenerator(g).Generate(fieldOpts...)
//g.ApplyBasic(g.GenerateAllTable(fieldOpts...)...)
//g.GenerateModel(tableName)
g.Execute()

测试

运行 gen_test.go 文件中的 TestParse 方法。生成完成 dao 和 model 文件后,可以删除 TestSelect 注释进行测试

交流群

QQ群:364768550

gorm-gen-yaml's People

Contributors

donknap avatar titrxw avatar alphasnow avatar

Stargazers

 avatar  avatar MichaelMin avatar Yukiko Babikian avatar  avatar  avatar  avatar  avatar lucien avatar 剑心 avatar  avatar

Watchers

 avatar  avatar

gorm-gen-yaml's Issues

[bug] opt

@titrxw @donknap

  1. opt 参数没有使用? 此时想要传递相关配置就不生效了吧
    func (self *yamlGenerator) Generate(opt ...gen.ModelOpt) {
        if self.yaml.Config.TagJsonCamel != "" {
    	    self.gen.WithJSONTagNameStrategy(func(columnName string) (tagContent string) {
    		    return UnderscoreToCamelCase(columnName, self.yaml.Config.TagJsonCamel == "upper")
    	    })
        }
        for _, table := range self.yaml.TableMap {
    	    self.generateFromTable(table)
        }
    }
  2. 比如设置软删除(或者是通过其他方式设置?)
	softDeleteField := gen.FieldType("delete_time", "gorm.DeletedAt")
	fieldOpts := []gen.ModelOpt{ softDeleteField}
xx.Generate(fieldOpts ) // this will not work

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.