ホームページ >バックエンド開発 >Golang >xorm がモデルを自動生成する仕組みの詳細な説明

xorm がモデルを自動生成する仕組みの詳細な説明

藏色散人
藏色散人転載
2021-11-01 16:10:352665ブラウズ

この記事は go 言語 チュートリアルコラムが xorm によるモードの自動生成方法を紹介する記事です。

xorm はモデル ファイルを自動的に生成します

プロジェクトのルート ディレクトリを入力します

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 %

no go- sql-driver/mysql 最初にインストールします

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

cmd コマンド ラインで xorm をインストールします

go get github.com/go-xorm/xorm

次に、xorm cmd コマンド ツールをインストールします

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

インストール 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 %

#プロジェクト ディレクトリからジャンプして実行し、完了したらジャンプして戻ります
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 %

プロジェクト ディレクトリの templates/goxorm フォルダーに作成します。

    このファイルの下に config ファイルと struct.go.tpl ファイルを作成します。
  • テンプレートの内容は、必要に応じて変更できます。
  • config content
lang=go
genJson=1prefix=
  • struct.go.tpl の内容は次のとおりです
  • 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}}
      最後にコマンドを実行します
    • プログラムは現在のディレクトリに models フォルダーを生成し、models フォルダーに go ファイルを生成します

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

    #実行エラー
    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
    • ~/.zshrc に追加します:
      setopt no_nomatch
    • luwei@luweideMacBook-Pro-2 go-simple-task % cat ~/.zshrc                                              
      source ~/.bash_profileexport GOPROXY=https://goproxy.io,direct
      setopt no_nomatch
      を確認します
    • 最後に
      source ~/.zshrc
      を実行します
    #もう一度実行します

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

    xorm がモデルを自動生成する仕組みの詳細な説明

    残りは、モデル内のコンテンツを対応するモデルに割り当てることです

    以上がxorm がモデルを自動生成する仕組みの詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

  • 声明:
    この記事はlearnku.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。