TracLightning 2.0.8 から TracLightning3.1.1 へのアップグレード時のメモ (with TestLink)

約1年のプロジェクト開始前の準備として、Tracのバージョンアップをやってみました。UIがぐりぐりしてかっこいいです。

段取りの概要

  1. バックアップ
  2. TracLightning バージョンアップ
    1. TracLightning を新規インストール
    2. httpd.conf 編集
    3. DB Upgrade、Wiki Upgrade
    4. その他作業
  3. TestLink対応
    1. httpd.conf 編集
  4. 稼働確認

(1) バックアップ

いざというときのために取ります。

C:\TracLight\projects ディレクトリ
 ┣ svn
 ┃	┣<各プロジェクト>
 ┣ trac
 ┃	┣<各プロジェクト>
 ┃		┣ conf
 ┃		┃	┗ trac.ini
 ┃		┣ db
 ┃			┗ trac.db

(2-1) 新規インストール

  1. サービスを落とす
  2. ApacheMonitorもあがっていたら落とす
  3. TracLightning アンインストール
  4. TracLightning インストーラーを実行
    1. Apacheの設定を上書きする」のチェックボックスチェックしてインストール ! (マイナーバージョンUPのときはチェックを外す。今回はモジュールの入れ替えが多かったので)
  5. サーバ再起動

(2-2) httpd.conf 編集

認証が必須になるように追加しました。Apacheの再起動で反映されます。


  AuthType Digest
  AuthName trac
  AuthUserFile "C:\TracLight\projects\trac.htdigest"
  Require valid-user

(2-3) DBアップグレード、Wikiアップグレード

Trac Lightningのインストールディレクトの下のprojects\tracの下の各プロジェクトに対して、 次のようにしてアップグレードを実行します
> trac-admin C:\TracLight\projects\trac\<各プロジェクト> upgrade
> trac-admin C:\TracLight\projects\trac\<各プロジェクト> wiki upgrade

(2-4-1) その他作業 Subversion 関連の不具合対応

コミット自体はできているものの↓のようなエラーがでて気持ち悪いので、対応します。

エラー: post-commit hook failed (exit code 2) with output:
エラー: C:\TracLight/python/python.exe: can't open file 'C:\TracLight/python-lib/trac/contrib/trac-post-commit-hook': [Errno 2] No such file or directory

trac-post-commit-hook というファイルをここからダウンロードして、C:\TracLight\python-lib\trac\contrib の配下におきます。

(2-4-2) その他作業 カスタムフィールド移行

Tracの共通設定だった、due_assign(開始予定日)、due_close(終了予定日)、complete(進捗率(%))が共通設定でなくなりました。
使っていた項目なので、個別プロジェクトのtrac.iniに追記しました。
詳しくはこちら

(2-4-3) その他作業 日付フィールド対応

自分で追加したカスタム属性もカレンダーの部品を使えるようになったので、trac.iniを編集します。(3.1.1では管理画面からはできません & Tracの再起動が必要)
(例)

due_assign = text
due_assign.date = true
due_assign.date_empty = on
due_assign.label = 開始予定日
due_assign.order = 0

(2-4-4) その他作業 Wiki アップグレード / DB変更対応・レポートSQL

日付のカラム(created, modified, date, time)をdateやstrftimeなどの日付関連の関数で変換している場合には、変換元の値を1000000で割らなければ日付関数での変換が出来なくなっています。具体的にdate関数の場合には以下のようにする必要があります。

0.11以前: date(time,'unixepoch','localtime')
0.12以降: date(time/1000000,'unixepoch','localtime')

strftime関数の場合にはさらに注意が必要で、直接値を割るとレポートでエラーとなってしまうため、一旦date関数で変換後に再変換を行う必要があります。

0.11以前: strftime('%Y/%m/%d', time,'unixepoch''localtime')
0.12以降: strftime('%Y/%m/%d', date(time/1000000,'unixepoch','localtime'))

(3) TestLink対応・httpd.conf 編集

Apacheに同居させていたTestLinkの設定を追加します。
#LoadModule設定追加

LoadModule php5_module c:/PHP/php5apache2_2.dll

#IfModule dir_module に追加

index.php

#mime_module に 追加

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

#LocationMatch変更

#

(4) 稼働確認

今のプロジェクトで使う範囲での確認リストはこんな感じです。

  1. データ保全
    1. ユーザ認証データ
    2. SVNソースコード
    3. wiki
    4. チケット、マイルストーン
  2. アプリ稼働確認
    1. TortoiseSVN
      1. チェックアウト
      2. 更新コミット
      3. 新規作成コミット
      4. 削除コミット
    2. Eclipse から
      1. チェックアウト
      2. 更新コミット
      3. 新規作成コミット
      4. 削除コミット
    3. チケット から
      1. 過去分照会
      2. 新規作成
    4. Tracプラグイン確認
      1. 全文検索
  3. TestLink 稼働

参考にさせていただいたところ

  • Trac Lightning プロジェクト TracLightning2.xからTracLightning3.0.xへのアップグレードの注意

http://sourceforge.jp/projects/traclight/wiki/TracUpgrade3_0_0

  • SVN関連不具合

http://sourceforge.jp/ticket/browse.php?group_id=2810&tid=24143

http://d.hatena.ne.jp/kaorun55/20090415

  • TracLightning3.0.8

http://www.srcw.net/wiki/index.php?TracLightning3.0.8

  • Trac Lightningについて

http://machi.cs.inf.shizuoka.ac.jp