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

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

藏色散人
リリース: 2021-11-01 16:11:36
転載
2654 人が閲覧しました

この記事は 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 までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート