sqlboilerの導入
環境
Go 1.16~
sqlboiler v.4.4.0
1. sqlboilerのインストール
# slqboilerのインストール
go install github.com/volatiletech/sqlboiler/v4@latest
# driverのインストール(今回はMySQL)
go install github.com/volatiletech/sqlboiler/v4/drivers/sqlboiler-mysql@latest
古いバージョンをインストールして期待通りの動作にならないことを防ぐため、/vサフィックス(/v4の部分)を忘れないようにしましょう!
2. 構成ファイル(sqlboiler.toml)の作成
データベースドライバーや構成オプションを設定するために、slqboiler.toml
ファイルを作成します。
MySQLを利用する場合下記のような構成になります。
[mysql]
dbname="devdb"
host="localhost"
port=3306
user="root"
pass=""
sslmode="false"
すでにデータベースには存在しているが、sqlboiler modelとして生成したくない場合はテーブル名を指定します。tips 【オプションの追加】
オプションとしてwhitelist、blacklistが存在します。
whitelist→追加したテーブルのsqlboiler modelが作成されます
blacklist→追加したテーブルのsqlboiler modelは作成されなくなります
whitelist
[mysql]
dbname="devdb"
host="localhost"
port=3306
user="root"
pass=""
sslmode="false"
blacklist=["users"] # usersテーブルのsqlboiler modelのみが作成される
blacklist
[mysql]
dbname="devdb"
host="localhost"
port=3306
user="root"
pass=""
sslmode="false"
blacklist=["staffs"] # staffsテーブルのsqlboiler modelは作成されない
3. sqlboilerモデル群の作成
sqlboiler ドライバー名
でsqlboiler modelの生成を行います。
$ sqlboiler mysql
コマンド実行後、実行フォルダ配下にsqlboiler model群が作成されます。
.
├── models
│ ├── users.go # DBに存在するテーブル
│ ├── users_test.go # users modelのテストファイル
│ ├── staffs.go
│ ├── staffs_test.go
│ ├── boil_main_test.go
│ ├── boil_queries.go
│ ├── boil_queries_test.go
│ ├── boil_suites_test.go
│ ├── boil_table_names.go # model出力されたテーブル名が定義されている
│ ├── boil_types.go # enum値が定数として保存
下記のような実行もできます。 ・ 出力結果advanced! 【オプションをつけてmodel生成をカスタマイズ】
model生成コマンドにもオプションをつけることができます。
Name
役割
Defaults
pkgname
作成ファイル名の指定
"models"
output
出力フォルダ名
"models"
tag
Struct tag出力オプション
[]
debug
デバッグモードの出力制限
false
add-global-variants
グローバル変数の出力制限
false
add-panic-variants
panic 変数の出力制限
false
no-context
context.Context利用無効
false
no-hooks
hooks機能の無効
false
no-tests
テストファイル無効
false
no-auto-timestamps
タイムスタンプ無効
false
no-rows-affected
APIで影響を受ける行の無効
false
no-driver-templates
DBドライバーのテンプレート解析無効
false
tag-ignore
タグの無視カラムリスト
[]
sqlboiler mysql --pkgname sqlboilermodels --output "./package/sqlboilermodels" --wipe --config ./sqlboiler.toml
pkgname
出力ファイル名の指定
・output
出力フォルダの指定
・wipe
健全性確保のため、出力modelファイルを先に削除→出力する
・config
sqlboiler.tomlで構成した内容で設定を上書き.
├── package
│ └── sqlboilermodels(--output, --pkgname)
│ ├── users.go
│ ├── users_test.go
│ ├── staffs.go
│ ├── staffs_test.go
│ ├── boil_main_test.go
│ ├── boil_queries.go
│ ├── boil_queries_test.go
│ ├── boil_suites_test.go
│ ├── boil_table_names.go
│ ├── boil_types.go
参考
この記事に書いてあることができたら・・・
「Issue」のタスクをこなすことができます❗️
IssueではIssue単位で企業のお仕事ができるサービスです
Ex.
Firebaseでメールアドレス確認メール文章変更の実装
単価3,000円で受けて10時間ほどで実装した場合
3,000円 × 10時間 = 30,000円
Author And Source
この問題について(sqlboilerの導入), 我々は、より多くの情報をここで見つけました https://qiita.com/sagae_twins_developper/items/fb665fafb1d1e7ebc68c著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .