(專案) AutoDB

最近在找教材練習, 遇到了一個狀況: 素材有提供 sql 檔案, 自己要開 db 以及 migrate sql code, 後面如果想實作的話, 還需要 types(model), 覺得流程重複且麻煩,所以自己就開了一個小專案, 想做點自動化!

專案位置

AutoDB 自動化以下流程

  1. 產生 .env
  2. 開一個 mysql container
  3. 預設一個 sample.sql
  4. 簡化 migrate
  5. 根據 schema 產生 struct type
  6. 初始化 sqlc

依賴

  • linux
  • docker
  • golang (optional)

Getting Started

用 go 執行

git clone https://github.com/cbot918/autodb
cd autodb && go mod tidy && go run .

verify scripts

# 看資料庫有 8 張表
docker exec -it autodb mysql -uroot -p12345 autodb -e "SELECT COUNT(table_name)
	FROM information_schema.tables
	WHERE table_schema = 'autodb';"
# 撈資料出來看
docker exec -it autodb mysql -uroot -p12345  --default-character-set=utf8 autodb -e "SELECT * FROM t_goods;"

下載 cli 來用

  1. 下載安裝
    curl -OL https://github.com/cbot918/autodb/releases/download/v0.0.1/odb && sudo chmod +x odb && sudo mv odb /usr/local/bin
    

    輸入 odb 這樣應該會看到 cli help

  2. 開始
    mkdir testodb && cd testodb
    odb init      # init .env
    odb createdb  # create mysql container
    odb createsql # download sample.sql
    odb migrate   # odb migrate
    odb verifydb  # see table numbers
    odb clean     # clean up container
    

備註:

  • 目前幾張表的 verify 寫死忘了改, 之後再變成動態好了QQ

後記:

  1. 後面要做 types gen (產 model type)
  2. 之後比較熟了來做看看 query to dao gen