アップグレードの説明

Trac を新しいバージョンで使用する前に Trac Environment をアップグレードしなければならない場合があります。このドキュメントでは Trac Environment をアップグレードするのに必要な手順を説明します。

Note: 特に指示がない限り、マイナーバージョンのリリース時には TracEnvironment のアップグレードは必要ありません。例えば、0.8.0で作成した(もしくはそれ以前のバージョンからアップグレードした)TracEnvironment を 0.8.4(もしくは0.8.x)インストール時にアップグレードする必要はありません。

一般的な手順

通常、Tracを新しいバージョンにアップグレードするときに、4ステップを踏まなければなりません:

Trac のコードを更新する

Trac の新しいバージョンを入手してください。オフィシャルリリースのパッケージをダウンロードするかもしくは Subversionリポジトリ からチェックアウトして下さい。

ソースコードを入手したら、以下のコマンドを実行して下さい。

python setup.py install

新しいバージョンをインストールするコマンドです。もし、Windows インストーラバージョンをダウンロードしたならば、インストーラを実行するなどして下さい。

どのような場合でも、メジャーバージョンをアップグレードする場合 (0.8 から 0.9 にアップグレードするなど) 最初に今現在、存在している Trac のコードを削除することを特に お勧めします。削除するには、 trac のディレクトリを Python の lib/site-packages ディレクトリから削除します。もし Trac cgi-bin, htdocs, templates ディレクトリも削除したいならば、それらは share/trac というディレクトリの中で見つかるでしょう。(正確なロケーションはプラットフォームに依存します)

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-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 でコンポーネントの無効化 / 有効化のルールを更新しなければならないかもしれません。特にグローバルにインストールされたプラグインは、現在では明示的に有効化する必要があります。詳しくは TracPluginsTracIni を参照して下さい。

タイムラインでチケットの全ての更新を表示させたい ("チケットの詳細" オプション) 場合も、 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

変換が成功した後、 trac2.db ファイルは削除することができます。 SQLite のアップグレードに関するより詳しい情報は http://www.sqlite.org/version3.html を参照して下さい。

0.7 から 0.8 へのアップグレード

0.8では追加のパーミッションを必要とする新しい機能が加わりました。 新規にインストールを行なった場合は、 anonymous に ROADMAP_VIEW と MAILSTONE_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