Heim >Backend-Entwicklung >Golang >Detaillierte Erklärung, wie xorm automatisch Modelle generiert

Detaillierte Erklärung, wie xorm automatisch Modelle generiert

藏色散人
藏色散人nach vorne
2021-11-01 16:10:352652Durchsuche

Dieser Artikel wird in der Tutorial-Kolumne von go language eingeleitet, in der es um die automatische Generierung von Modi mit xorm geht. Ich hoffe, dass er für Freunde hilfreich ist, die ihn benötigen.

Xorm generiert automatisch Modelldateien

luwei@luweideMacBook-Pro-2 go-simple-task % pwd/Users/myself/Golang/common_project/src/go-simple-task
luwei@luweideMacBook-Pro-2 go-simple-task % ls
Dockerfile      go-simple-task  go.mod          go.sum          logic           logs            main.go         model           models          overall         serv            templates       tool
luwei@luweideMacBook-Pro-2 go-simple-task %

Dann installieren Sie das xorm cmd-Befehlstool.
go get -u github.com/go-sql-driver/mysql

Installieren Sie die cmd-Fehlerbehandlung orm Ordner im Projektverzeichnis


diese Datei Erstellen Sie Konfigurations- und struct.go.tpl-Dateien


Der Inhalt der Vorlage kann entsprechend Ihren eigenen Anforderungen geändert werden

Der Konfigurationsinhalt lautet wie folgt:

go get github.com/go-xorm/xorm

struct.go.tpl-Inhalt lautet wie folgt:


go get github.com/go-xorm/cmd/xorm

Führen Sie abschließend den Befehl ausDas Programm befindet sich im Ordner „Models“ im aktuellen Verzeichnis und generiert die GO-Datei im Ordner „Models“

    Ausführungsfehler
  • luwei@luweideMacBook-Pro-2 go-simple-task % go get github.com/go-xorm/cmd/xorm
    # github.com/go-xorm/cmd/xorm
    ../../pkg/mod/github.com/go-xorm/cmd/xorm@v0.0.0-20190426080617-f87981e709a1/dump.go:45:26: cannot use "github.com/go-xorm/core".LOG_UNKNOWN (type "github.com/go-xorm/core".LogLevel) as type "xorm.io/core".LogLevel in argument to engine.Logger().SetLevel
    ../../pkg/mod/github.com/go-xorm/cmd/xorm@v0.0.0-20190426080617-f87981e709a1/reverse.go:246:34: cannot use tables (type []*"xorm.io/core".Table) as type []*"github.com/go-xorm/core".Table in argument to langTmpl.GenImports
    ../../pkg/mod/github.com/go-xorm/cmd/xorm@v0.0.0-20190426080617-f87981e709a1/reverse.go:254:18: cannot use table (type *"xorm.io/core".Table) as type *"github.com/go-xorm/core".Table in append
    ../../pkg/mod/github.com/go-xorm/cmd/xorm@v0.0.0-20190426080617-f87981e709a1/reverse.go:291:26: cannot use table (type *"xorm.io/core".Table) as type *"github.com/go-xorm/core".Table in slice literal
    ../../pkg/mod/github.com/go-xorm/cmd/xorm@v0.0.0-20190426080617-f87981e709a1/shell.go:60:26: cannot use "github.com/go-xorm/core".LOG_UNKNOWN (type "github.com/go-xorm/core".LogLevel) as type "xorm.io/core".LogLevel in argument to engine.Logger().SetLevel
    ../../pkg/mod/github.com/go-xorm/cmd/xorm@v0.0.0-20190426080617-f87981e709a1/source.go:45:26: cannot use "github.com/go-xorm/core".LOG_UNKNOWN (type "github.com/go-xorm/core".LogLevel) as type "xorm.io/core".LogLevel in argument to engine.Logger().SetLevel
    luwei@luweideMacBook-Pro-2 go-simple-task %
  • Lösung
    luwei@luweideMacBook-Pro-2 go-simple-task % cd ../luwei@luweideMacBook-Pro-2 src % go get github.com/go-xorm/cmd/xorm
    luwei@luweideMacBook-Pro-2 src %
  • Fügen Sie
    lang=go
    genJson=1prefix=
  • zu ~/.zshrc hinzu, um
    package {{.Models}}{{$ilen := len .Imports}}{{if gt $ilen 0}}import (
        {{range .Imports}}"{{.}}"{{end}}){{end}}{{range .Tables}}type {{Mapper .Name}} struct {{{$table := .}}{{range .ColumnsSeq}}{{$col := $table.GetColumn .}} {{Mapper $col.Name}}    {{Type $col}} {{Tag $table $col}}{{end}}}{{end}}
    zu überprüfen.
Führen Sie abschließend
xorm reverse mysql root:root@/fox?charset=utf8 templates/goxorm
aus. Noch einmal ausführen Der Rest besteht darin, den Inhalt in Modellen dem entsprechenden Modell zuzuordnen zum Model

    Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung, wie xorm automatisch Modelle generiert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Stellungnahme:
    Dieser Artikel ist reproduziert unter:learnku.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen