@kyanny's blog

My thoughts, my life. Views/opinions are my own.

https://github.com/xo/xo

github.com

  • データベース定義から Go 言語のコードを生成するコマンドラインツール
  • 各種 RDBMS に対応
  • O/R Mapper ではない
  • テーブルと対応する構造体定義のコードを出力する
  • Insert のようなメソッド、 ActorByActorID のような関数のコードを出力する
    • xo コマンドにテンプレートを指定することで出力されるコードをカスタマイズできる
  • dvdrental データベースに対して実行してコード生成させてみた
    • https://github.com/kyanny/go-xo-practice
    • models/ ディレクトリ
    • そのままではいくつかエラーがでて go build が通らなかった(なぜ?)
    • PostgreSQL 12 に対して実行したらほとんどファイルが出力されなかった(なぜ?)
      • PostgreSQL 11 に対して実行したらうまくいった模様
  • https://github.com/xo/xo/tree/master/examples/booktest に生成されたコードを利用するサンプルコードがある
    • しかしこれと同じような感じに書いても db の型の定義とか、いろいろそのまま動かないような?