サーバ

JIRA 4.0.0 から JIRA 4.0.2 へのアップグレード

JIRA はAtlassian社のJava ベースのバグトラッキングシステムで、ApacheJBossでも使われています。
とっつきやすさと高機能をうまく両立しており、また見た目が洗練されている素晴らしい製品です。
オープンソースプロジェクトへは無償ライセンスを提供してくれるので私のプロジェクト、Twitter4Jでも使っています

今回はアップグレードですが、新規インストールの手順もほとんど同じです。

JIRA のバージョンは 4.0.0 から 4.0.2 になりました。

1. 現行 JIRA データのバックアップ
既存 JIRA インスタンスより、
ADMINISTRATION > Import & Export > Backup Data to XML
File name: /Users/yusukey/jirabackup0302-2010.xml > "Backup"

無事成功すると Data exported to: /Users/yusukey/jirabackup0302-2010.xml と表示される。
現行インススタンスはシャットダウン。

2. Atlassian より最新版をダウンロード
http://www.atlassian.com/software/jira/JIRADownloadCenter.jspa
デフォルトではスタンドアロン版が表示されています。
以前は JBoss 上で動かしていましたが、現在 JBoss 上での動作はサポートされていない(&うまく動かない)のでスタンドアロン版を使っています。
WebLogic 等にデプロイする場合は "Show all" をクリックして Enterprise – WAR/EAR 版を表示、ダウンロードします。

3. MySQL にデータベース作成
既存データベースに接続させることもできるけれども、最適なスキーマを作るには新規にデータベースを用意することが推奨されています。

$ ./mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 14605
Server version: 5.0.45 MySQL Community Server (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> create database jira402 character set utf8;
Query OK, 1 row affected (0.07 sec)

mysql> ^DBye

atlassian-jira-enterprise-4.0.2-standalone/conf/server.xml に以下のエントリを書いてバンドルされている Tomcat のコネクションプール/データソースとメールセッションを作成。
server.xml

<Resource name="mail/jiraMail"
auth="Container"
type="javax.mail.Session"
mail.transport.protocol="smtp"
mail.smtp.host="smtp.gmail.com"
mail.smtp.port="465"
mail.smtp.auth="true"
mail.smtp.user="jira@yusuke.homeip.net"
password="***************"
mail.smtp.starttls.enable="true"
mail.smtp.socketFactory.class="javax.net.ssl.SSLSocketFactory"
/>
<Resource name="jdbc/JIRADS" auth="Container" type="javax.sql.DataSource"
username="***************"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/jira402?useUnicode=true&amp;characterEncoding=UTF8"
minEvictableIdleTimeMillis="4000"
timeBetweenEvictionRunsMillis="5000"
maxActive="20" />

4. JIRA のデータソース設定
atlassian-jira-enterprise-4.0.2-standalone/atlassian-jira/WEB-INF/classes/entityengine.xml を修正
接続 DB を hsql から mysql に、schema-name 属性を削除。

99:    <datasource name="defaultDS" field-type-name="hsql"
100: schema-name="PUBLIC"

99: <datasource name="defaultDS" field-type-name="mysql"
100: <!--削除-->

5. jira.home の設定
このプロパティは今回から必要になったようです。
atlassian-jira-enterprise-4.0.2/atlassian-jira/WEB-INF/classes/jira-application.properties の jira.home に任意のディレクトリを絶対パスで指定します。

jira.home=/Users/yusukey/jirahome

6. 起動パラメータの調整
自宅サーバのメモリが少ないので、我が家ではややヒープサイズを小さめに設定しています。イマドキのマシンであればデフォルトのままで問題ないと思います。
atlassian-jira-enterprise-4.0.2-standalone/bin/setenv.sh

JAVA_OPTS="-Xms150m -Xmx150m -XX:PermSize=40m -Xss128k $JAVA_OPTS -Djava.awt.headless=true -Datlassian.standalone=JIRA -Dorg.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER=true -Dmail.mime.decodeparameters=true "

# Perm Gen size needs to be increased if encountering OutOfMemoryError: PermGen problems. Specifying PermGen size is not valid on IBM JDKs
JIRA_MAX_PERM_SIZE=180m

7. データのインポート
JIRA を起動、アクセスし、インポート。あらかじめライセンスをアップグレードしておくか、評価ライセンスを取得しておく必要があります。
Import Existing Data
File name: /Users/yusukey/jirabackup0302-2010.xml

9. アップグレード完了!
以上でアップデート完了です。

関連記事:
Welcome to Go2Group, the SPLA Experts! – JIRA 概要 –
Risksoft – アトラシアン(Atlassian)製品の価格と購入(オンライン販売)
JIRA 4 へのアップグレード手順(バージョン 3.13.1 から) – 侍ズム
Atlassian が JIRA4 をリリース – 指名ユーザライセンス制を導入 – 侍ズム
JIRA 3.13.1 へ FishEye プラグイン 2.3 をインストール
JIRA をバージョン 3.13.1 へアップデート – 侍ズム
FishEye 1.6.3 のインストール
JIRA をバージョン 3.12.3 へアップデート