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は便利ですね。