データ分析基盤構築入門のWebアプリケーションが起動しない(no such table: articles)
概要
こちらの書籍で紹介されているdockerコンテナが動かなかったのでメモ。 https://www.amazon.co.jp/dp/B075RTZ141/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1
問題
下記のブログと同様に「no such table: articles」と表示され、アプリのマイグレーションができていない現象に遭遇。 https://qiita.com/ikedanoda/items/d3622833154a2b83fd9c
# マイグレーションコマンド docker-compose exec go make migrate/up # エラー github.com/go-sql-driver/mysql/conncheck.go:29: undefined: syscall.Conn
対処
上記のエラーは、goのバージョンが1.9未満の時に生じる模様。 とりあえず、goを1.9.7に上げて対応。
# dockerコンテナの中に入る docker-compose exec go bash # goのインストールフォルダは/usr/local/goのため、削除して入れ直す rm -rf /usr/local/go wget https://dl.google.com/go/go1.9.7.linux-amd64.tar.gz tar -zxvf go1.9.7.linux-amd64.tar.gz mv go /usr/local/go # 動作確認(1.9.7と表示されればOK) go version # マイグレーション make migrate/up
最後に
動作はこれから確認するので、正しく動いているかは未検証。
goのバージョンをアップグレードするより、 goのバージョンと乖離していないブランチをgo-sql-driverを落とした方がいい気がする。 (おそらくgo-sql-driverの最新版のリポジトリのみを見ている)
dockerはデリバリーする分にはいいけど、抽象レイヤーが多すぎて問題があるとよー分からん。 こっちはdockerを四六時中触っているわけでないし、 環境を構築する過程が吹っ飛んでで辛い。
あと、他言語を置いておいてgoを使う必要性も分からんので勉強する。
とりあえず、動いたからOK。