アップグレードの説明
Table of Contents
Trac を新しいバージョンで使用する前に TracEnvironment をアップグレードしなければならない場合があります。このドキュメントでは TracEnvironment をアップグレードするのに必要な手順を説明します。
Note: 特に指示がない限り、マイナーバージョンのリリース時には TracEnvironment のアップグレードは必要ありません。例えば、 0.8.0 で作成した (もしくはそれ以前のバージョンからアップグレードした) TracEnvironment を 0.8.4 (もしくは0.8.x) インストール時にアップグレードする必要はありません。
一般的な手順
通常、 Trac を新しいバージョンにアップグレードするときに、 4 ステップを踏まなければなりません:
Trac のコードを更新する
Trac の新しいバージョンを入手してください。オフィシャルリリースのパッケージをダウンロードするかもしくは Subversionリポジトリ からチェックアウトして下さい。
もし、メジャーバージョンのアップグレード (例えば 0.8 から 0.9) を行ったら、最初に現在インストールしている Trac のコードを削除することを 特に 勧めます。 trac ディレクトリを Python の lib/site-packages ディレクトリから削除して下さい。 Trac の cgi-bin, htdocs, templates そして、 wiki-default ディレクトリも削除したいときは、通常 share/trac ディレクトリ以下に存在するでしょう。(正確なロケーションはプラットフォームに依存します)
ソースコードを入手したら、以下のコマンドを実行して下さい。
python setup.py install
新しいバージョンをインストールするコマンドです。もし、 Windows インストーラバージョンをダウンロードしたならば、インストーラを実行するなどして下さい。
TracEnvironment をアップグレードする
指示がない限り、メジャーバージョンをアップグレードする (例えば 0.8 から 0.9) ときは、データベーススキーマの変更と、おそらく TracEnvironment のディレクトリ 構成の変更が生じます。幸運なことに Trac は自動アップデートのスクリプトを提供しているので、負担が軽減されるでしょう。これらのスクリプトは trac-admin を通して起動されます:
trac-admin /path/to/projenv upgrade
このコマンドはもし TracEnvironment がすでに最新の状態になっているときは、何もしません。
Note: PostgreSQL データベースを使用している場合、このコマンドは「 Environment のバックアップは SQLite を使っているときしか出来ない」というメッセージを出力して失敗します。リポジトリとデータベースのバックアップは手動で行う必要があります。その後、アップグレードを行うために次のコマンドを実行してください:
trac-admin /path/to/projenv upgrade --no-backup
Trac ドキュメントを更新する
すべての Tracenvironment インストールされたバージョンの Trac ドキュメントのコピーを含んでいます。新しくインストールした Trac のドキュメントと同期を取りたいでしょう。 trac-admin がドキュメントを更新するコマンドを提供しています:
trac-admin /path/to/projenv wiki upgrade
当然このプロシージャはあなたの WikiStart ページをまったく変更せず、そのままに残しておきます。
Web サーバを再起動する
新しい Trac コードをリロードするために、 Web サーバを再起動する必要があります。 (古い CGI プログラムを使用しているときは必要ありません。)
特定のバージョン間のアップグレードについての付記
以下のセクションでは Trac の特定のバージョンにアップグレードするときにやらなければならないことについて記述します。
0.9 から 0.10 へのアップグレード
Wiki シンタックスでいくつかの変更があったため、いくつかのページでは期待通りに動かないことに気づくでしょう:
- バージョン 0.9 以前、画像ファイルへのリンクはページの中に組み込まれていました。 0.10 以降では、画像ファイルへのリンクは単なる画像ファイルへのリンクとなります。もし、そのページに画像ファイルを組み込みたいならば、 [[Image]] マクロを使用して下さい。
- wiki のリンクでスペース文字をエンコードするのに、 %20 を使用しなくてもよくなりました。その代わり、スペースを含んでいる名前を括って下さい。 (例えば、wiki:My%20page の代わりに wiki:"My page" を使用することができます。)
いくつかの拡張機能がバージョンコントロールサブシステムに追加されました。特にスコープつきのリポジトリの対応が向上しました。 これらの機能をうまく利用するために、 resync 操作を [TracAdmin#対話モード trac-admin] で実行することを推奨します。
trac-admin の initenv コマンドの引数リストが変更になったことに注意して下さい: バージョンコントロールシステムの種類を設定するための新しい引数が追加されました。古い使用方法は以下の通りです:
initenv <projectname> <db> <repospath> <templatepath>
新しい使用方法ではこうなります:
initenv <projectname> <db> <repostype> <repospath> <templatepath>
TracEnvironment を自動で生成するスクリプトを使用している場合は、アップデートする必要があります。もし、 Subversion を使用しているならば、 <repostype> 引数に svn を指定して下さい。
0.9.3 から 0.9.4 へのアップグレード
レポートのクエリで LIKE 節での "%" や日付のフォーマットを使用すると落ちるというバグが Pysqlite 1.x に存在します。パーセント文字を使用するときは、もう一つパーセント文字を付けてエスケープする必要があります: "%%"
0.9.x から 0.9.3 以降へのアップグレード
もし、プラグインを使用しているならば、それらをアップグレードする必要があるでしょう。詳細は http://trac.edgewall.org/milestone/0.9.3 を参照して下さい。
0.9-beta から 0.9 へのアップグレード
静的リソース (CSS, javascript, 画像ファイル) のインクルードは機能しません。 trac.ini の htdocs_location を確認してください。 mod_python, Tracd, FastCGI を使用している場合、単にオプションを削除してください。 CGI を使用している場合、 Trac の htdocs ディレクトリへの URL マップを修正しなければいけません (以前の記述を削除し、 静的なリソースをマッピングする)。オプションを削除した後でも問題が残っている場合、ファイル trac/siteconfig.py のパスを確認し、誤っていれば修正してください。
Trac 0.9 のベータリリースでプラグインを使用しているか、組み込みコンポーネントの無効化を行っていたら、 trac.ini でコンポーネントの無効化 / 有効化のルールを更新しなければならないかもしれません。特にグローバルにインストールされたプラグインは、現在では明示的に有効化する必要があります。詳しくは TracPlugins と TracIni を参照して下さい。
タイムラインでチケットの全ての更新を表示させたい ("チケットの詳細" オプション) 場合も、 trac.ini での明示的な有効化が必要です:
[timeline] ticket_show_details = true
0.8.x から 0.9 へのアップグレード
mod_python を使用している場合は Apache HTTPD の設定で mod_python ハンドラの名前を変更する必要があります:
from: PythonHandler trac.ModPythonHandler to: PythonHandler trac.web.modpython_frontend
PySQLite の 2.x がインストールされているなら、注意してください。今や Trac は SQLite 3.x のファイルフォーマットで 2.x のデータベースを開こうとします。 SQLite 2.8.x と 3.x のデータベースのフォーマットに互換性がありません。もしアップデート後に "file is encrypted or is not a database" といったエラーが出力されたら、データベースファイルを 3.x 形式に変換しなければなりません。
もし変換を行うならば、 SQLite の 2.8.x と 3.x の両方をインストールする必要があります (バージョンごとにファイル名が異なるので、同じシステム内に共存できます)。以下に示すコマンドを使用して下さい:
$ mv trac.db trac2.db $ sqlite trac2.db .dump | sqlite3 trac.db
Linux で複数のデータベースファイルを一度にアップグレードするために、以下のコマンドが使用できるでしょう。( /var/trac は実際に Trac をインストールしたパスに置き換えて下さい ):
$ find /var/trac/ -iname "trac.db" | xargs -i bash -c "mv {} {}.2; sqlite {}.2 .dump | sqlite3 {};"
web サーバに trac.db への書き込み権限を忘れずに付けてください。
変換が成功した後、 trac2.db ファイルは削除することができます。 SQLite のアップグレードに関するより詳しい情報は http://www.sqlite.org/version3.html を参照して下さい。
0.7 から 0.8 へのアップグレード
0.8 では追加のパーミッションを必要とする新しい機能が加わりました。 新規にインストールを行なった場合は、 anonymous に ROADMAP_VIEW と MILESTONE_VIEW パーミッションがデフォルトで与えられますが、 既存の trac をアップグレードしたときは、 これらのパーミッションを手動で与えなければなりません。:
$ trac-admin /path/to/projectenv permission add anonymous MILESTONE_VIEW $ trac-admin /path/to/projectenv permission add anonymous ROADMAP_VIEW
See also: TracGuide, TracInstall