Open7
Go言語でDDLからdatabase/sqlの実装を生成するCLIを作ってみたい
まずは、やりたいことを簡単にまとめる
-
DDL
を読み込む - 読み込んだ
DDL
からテーブルの構造体とカラム定義を保持 - 最終的に以下をファイル生成する
- テーブルの構造体
-
SELECT
、INSERT
、UPDATE
、DELETE
実装
DDL
をパースするのに、もしスペースが沢山含まれている場合はどうしたらいいか。
CREATE TABLE users (
調べたら以下を見つけた、こんな便利メソッドがあるのか、、、。
以下のメソッドを使ってうまいことできそう。
strings
パッケージを使用して解析するのは難しそう、、、
以下の記事を前に見つけていたので、参考にして実装してみる。
今回は、CREATE
文のみが対象なので複雑にはならなさそう?
Golang用のMakefileを整備している際に、gofmt
やgoimports
がinstallされていない場合の処理を書きたかった。
Gihub Copilotに書かせたら、以下のように書いてくれた。
format:
gofmt -w ./..
+ @command -v goimports >/dev/null 2>&1 || { \
+ echo "goimports not found. Installing..."; \
+ go install golang.org/x/tools/cmd/goimports@latest; \
+ }
goimports -w ./..
が、分からない、、、。
調べたら以下の記事がすごい分かりやすかった(筆者の方、ありがとうございます🙏🏻)
~/.zshrc
へ以下を追記
+ export PATH=$PATH:$(go env GOPATH)/bin # `gofmt`を実行したらパスが通っていなかった
+ autoload -Uz compinit # Makefile実行時に`zsh`でタブ補完が効かなかった
+ compinit
ちゃんとしたコミットメッセージを書こうとすると時間が掛かるし、面倒くさい、、、
本来はしっかり書くべきだと思いますが、、、Gihub Copilotにお願いすることしました🙏🏻
自動生成させるdatabase/sql
の実装は以下の記事を参考にさせて頂きました🙏🏻