冥冥乃志

ソフトウェア開発会社でチームマネージャをしているエンジニアの雑記。アウトプットは少なめです。

follow us in feedly

JIRAの評価が終わったのでデータベースを外部化

公式の対応プラットフォームは見よう、本当に。

JIRA アプリケーションを PostgreSQL に接続する - アトラシアン製品ドキュメント

このあたりを参考に、データベースの移行をしていました。

できればjiraもdockerで動かしたいけど、とりあえずデータベースのみdockerでやってみようと思って、以下の様にデータベース立ち上げてデータベースの移行をやってみました。

docker run --name jira-postgres -t -i -v /root/jira-data/:/var/lib/postgresql/data/ -p 5432:5432 -e POSTGRES_PASSWORD=**** postgres

で、 <jira-install-directory>/bin/config.sh で接続情報を変えてみたら、接続テストは通るけどJIRAが起動しない、何かNullPointerExceptionで落ちてる。表示されるエラー画面がそもそもJIRAのエラー画面ですらなくてTomcatのエラー画面っぽかったので、ちょっとどうしていいかわからず。とりあえずWebのウィザード使ってみようと思って /var/atlassian/application-data/jira/dbconfig.xml を削除、JIRAを再起動してアクセスしてみました。で、やっぱりうまくいかないんですね。インポートでエラーになります。

java.lang.RuntimeException: Could not get unique fields for table 'AO_21D670_WHITELIST_RULES

どうも、あるテーブルのユニークフィールドが取得できてない模様。Atlassianのサポートに連絡して、色々と情報を集めたりしながらやりとりをしていましたが、なかなか解決せずげんなりしていたところで、ふと気づきました。

サポートバージョンじゃなくね?

PostgreSQLのイメージはlatest使っちゃダメ、という話でした。

Supported platforms - Atlassian Documentation

latestで引っ張ってくるとPostgreSQL 9.6系です。以下の様に9.4系最新を指定してデータベースを立ち上げ直したらインポートできました。

docker run --name jira-postgres -t -i -v /root/jira-data/:/var/lib/postgresql/data/ -p 5432:5432 -e POSTGRES_PASSWORD=**** postgres:9.4

こういう時にカジュアルに環境を切り替えられるので、dockerは便利ですね。