Code Generation
Configurationファイルを書いたらgenormコマンドを用いてコード生成します。genormコマンドのflagの概要は以下の通りです。
$ genorm -help
Usage of ./genorm:
-destination string
The destination file to write.
-join-num int
The number of joins to generate. (default 5)
-module string
The root module name to use.
-package string
The root package name to use.
-source string
The source file to parse.
-version
If true, output version information.
Configurationファイルなどに//go:generateディレクティブを書くことでgo generateによりコード生成できます。
destination(required)
コードを生成する対象のディレクトリです。コマンドを実行しているディレクトリからの相対パス、絶対パスで指定できます。手で書くコードとは異なるディレクトリを指定することをお勧めします。
module(required)
コード生成先ディレクトリのmodule名を指定します。
例えば、以下のようなディレクトリ構成でgo.modで指定されたmodule名がgithub.com/mazrean/genorm-workspaceである場合はgithub.com/mazrean/genorm-workspace/genormとなります。
.
├── genorm //生成先ディレクトリ
└── go.mod
package(required)
コード生成先ディレクトリ直下のpackage名を指定します。
例えば、destinationflagで./genormを指定しpackageflagにormを設定したとき、./genorm直下に生成されるgenorm.goファイルの先頭にpackage ormが書き込まれ、./genorm直下がormpackageとなります。
source(required)
Configurationファイルのパスです。コマンドを実行しているディレクトリからの相対パス、絶対パスで指定できます。
join-num
Join可能なテーブル数を指定します。デフォルト値は5です。
コード生成時間はこの値に対して指数的に増加します。大きくする際にはコード生成にかかる時間に注意してください。また、コード生成時間が長い場合はこの値を小さくすることを検討してください。
version
コマンドのバージョンを出力します。