ハッキングバカ

プログラミングに関するメモ

Luminus の migration が失敗する [Clojure]

環境: Ubuntu 16.04, Mariadb 15.1

数週間悩んでしまった。
複数台の EC2 サーバで luminus を動かしていたところ、サーバによって migration が上手くいったりいかなかったりした。
サーバには jar をアップロードして、

sudo java -jar example.jar migrate

をすればいいはずなのだが、エラーメッセージが出るわけでもなく、データベースは空っぽのままだった。
migration はできなくても、外部のサーバとの通信は出来たので、アプリケーションと DB サーバの両方に jar ファイルを上げて migration は DB サーバで行うという面倒なやり方をしていた。
全く同じ jar ファイルであってもサーバによって出来たり出来なかったりしたので、Mariadb のバージョンのせいかと考えたが、バージョンは全く同じだった。
jar と Mariadb のバージョンが同じということは、原因は javac になる。
バージョンの表示法の違いで気付いたのだが、失敗するサーバでは openjdk を使っていた。
サーバを立てるとき適当に選んでしまっていたので、サーバごとに統一されていなかったのだ。

sudo apt autoremove openjdk-9-jdk-headless
sudo apt install default-jdk

動いた……
根本的な原因が分かったわけではないがとりあえずほっとした。

参考: なし(いくらググっても分からなかった)