Maison >développement back-end >Golang >Explication détaillée de la façon dont xorm génère automatiquement des modèles

Explication détaillée de la façon dont xorm génère automatiquement des modèles

藏色散人
藏色散人avant
2021-11-01 16:10:352650parcourir

Cet article est introduit par la colonne tutoriel de go language sur la façon de générer automatiquement le mode avec xorm. J'espère qu'il sera utile aux amis qui en ont besoin !

xorm génère automatiquement des fichiers de modèle

Entrez le répertoire racine du projet

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 %

S'il n'y a pas de pilote go-sql-driver/mysql, installez-le d'abord

go get -u github.com/go-sql-driver/mysql

Installez xorm, sous la ligne de commande cmd

go get github.com/go-xorm/xorm

Ensuite, installez l'outil de commande xorm cmd

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

Installez la gestion des erreurs cmd

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 %

sortez du répertoire du projet pour l'exécuter, puis revenez en arrière une fois terminé

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 %

Créez les modèles/goxorm dossier dans le répertoire du projet

  • ce fichier Créez des fichiers de configuration et struct.go.tpl
  • Le contenu du modèle peut être modifié selon vos propres besoins
  • Le contenu de la configuration est le suivant
    lang=go
    genJson=1prefix=
  • Contenu de struct.go.tpl. est la suivante
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}}
  • Enfin, exécutez la commande

    Le programme sera dans le dossier Générer des modèles dans le répertoire courant et générera des fichiers go dans le dossier des modèles

    xorm reverse mysql root:root@/fox?charset=utf8 templates/goxorm

Erreur d'exécution

luwei@luweideMacBook-Pro-2 go-simple-task % xorm reverse mysql root:123456@/bubble?charset=utf8 templates/goxorm
zsh: no matches found: root:123456@/bubble?charset=utf8
  • Solution
    vim ~/.zshrc
  • Ajoutez :
    setopt no_nomatch
  • à ~/.zshrc pour vérifier
    luwei@luweideMacBook-Pro-2 go-simple-task % cat ~/.zshrc                                              
    source ~/.bash_profileexport GOPROXY=https://goproxy.io,direct
    setopt no_nomatch
  • Enfin, exécutez
    source ~/.zshrc

Exécutez à nouveau

luwei@luweideMacBook-Pro-2 go-simple-task % xorm reverse mysql root:123456@/bubble?charset=utf8 templates/goxorm
luwei@luweideMacBook-Pro-2 go-simple-task %

Explication détaillée de la façon dont xorm génère automatiquement des modèles

Le reste consiste à attribuer le contenu des modèles au modèle correspondant à le modèle

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer