はじめに
この記事は2022年8月にまとめていた「細かいつまずいたことをメモしておく(8月編)をそれぞれ投稿した内容になります
解決方法が最新でない可能性もありますのでご了承ください
問題
$ go install github.com/pressly/goose/v3/cmd/goose@latest
でgoose
をいれて、goose status
を叩いても実行ができずgoose help
と同じ内容がでる
/dbにdbconf.yml
を設定しているがそれが読み込まれていないようだった
調査
以下のコマンドでgooseを実行すると成功した
$ goose mysql "root:password@tcp(db:3306)/techblog?parseTime=true" status
これは
goose mysql "ユーザー名:パスワード@tcp(ホスト名:3306)/DB名?parseTime=true
と読み替える
ただし以下の不満点があった
- ログにパスワードが残るの
- コマンドが長く打つのが大変
- インストールに30分も時間がかかった
- dbconf.ymlは読み込まれていない
解決方法
gooseにはオリジナル
とfork
した2つが存在するようで、dbconf.ymlを設定するのは別のほうのgoose
だった
今回想定していたgooseはこちらだった
こちらをインストールする
$ go install bitbucket.org/liamstask/goose/cmd/goose@latest
するとdb/dbconf.yml
が読み込まれてgoose status
が動いた
ちなみに私の環境ではgccがないためインストールエラーになったので
$ apk add alpine-sdk
も実行した
参考