Changes between Version 1 and Version 2 of TracUpgrade


Ignore:
Timestamp:
May 13, 2012, 9:15:45 PM (12 years ago)
Author:
trac
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • TracUpgrade

    v1 v2  
    1 = アップグレードの説明 =
     1= アップグレードの説明 = #UpgradeInstructions
    22[[TracGuideToc]]
    33
    4 Trac を新しいバージョンで使用する前に TracEnvironment をアップグレードしなければならない場合があります。このドキュメントでは TracEnvironment をアップグレードするのに必要な手順を説明します。
     4== 一般的な手順 == #Instructions
    55
    6  '''Note''': ''特に指示がない限り、マイナーバージョンのリリース時には TracEnvironment のアップグレードは必要ありません。例えば、 0.8.0 で作成した (もしくはそれ以前のバージョンからアップグレードした) TracEnvironment を 0.8.4 (もしくは0.8.x) インストール時にアップグレードする必要はありません。''
     6通常、 Trac を新しいバージョンにアップグレードするときに、 7 ステップを踏まなければなりません:
    77
    8 == 一般的な手順 ==
     8=== 1. Trac のコードを更新する === #UpdatetheTracCode
    99
    10 通常、 Trac を新しいバージョンにアップグレードするときに、 4 ステップを踏まなければなりません:
     10TracInstall または、あなたの OS に合った方法で新しいバージョンの Trac を取得してください。
    1111
    12 === Trac のコードを更新する ===
     12`easy_install` を使って、バージョン 0.11 の Trac をインストールした場合は、 Trac のアップグレードにも `easy_install` を使うのが最も簡単な方法でしょう:
    1313
    14 Trac の新しいバージョンを入手してください。オフィシャルリリースのパッケージをダウンロードするかもしくは [http://trac.edgewall.org/wiki/SubversionRepository Subversionリポジトリ] からチェックアウトして下さい。
    15 
    16 もし、メジャーバージョンのアップグレード (例えば 0.8 から 0.9) を行ったら、最初に現在インストールしている Trac のコードを削除することを ''特に'' 勧めます。 `trac` ディレクトリを Python の `lib/site-packages` ディレクトリから削除して下さい。 Trac の `cgi-bin`, `htdocs`, `templates` そして、 `wiki-default` ディレクトリも削除したいときは、通常 `share/trac` ディレクトリ以下に存在するでしょう。(正確なロケーションはプラットフォームに依存します)
    17 
    18 ソースコードを入手したら、以下のコマンドを実行して下さい。
    1914{{{
    20 python setup.py install
     15# easy_install --upgrade Trac==0.12
    2116}}}
    2217
    23 新しいバージョンをインストールするコマンドです。もし、 Windows インストーラバージョンをダウンロードしたならば、インストーラを実行するなどして下さい
     18手動で (OS 特有でない) アップグレードをするのであれば、インストールを実行する前に起動中の Trac サーバを停止してください。 "ホット" アップグレードは問題を生じることが多いです。特に Windows では出来ないと考えてください ([http://trac.edgewall.org/ticket/7265 本家チケット 7265])
    2419
    25 === TracEnvironment をアップグレードする ===
     20すでに存在する Trac のコードを削除するには、 Python の `lib/site-packages` ディレクトリから `trac` ディレクトリか、 Trac の .egg の古いバージョンを削除します。
     21site-packages ディレクトリの位置は OS のシステム、および Python のインストールパスにより異なりますが、一般的には以下の位置にあります:
     22 * Linux の場合: `/usr/lib/python2.X/site-packages`
     23 * Windows の場合: `C:\Python2.X\lib\site-packages`
     24 * MacOSX の場合: `/Library/Python/2.X/site-packages`
    2625
    27 指示がない限り、メジャーバージョンをアップグレードする (例えば 0.8 から 0.9) ときは、データベーススキーマの変更と、おそらく [wiki:TracEnvironment TracEnvironment のディレクトリ] 構成の変更が生じます。幸運なことに Trac は自動アップデートのスクリプトを提供しているので、負担が軽減されるでしょう。これらのスクリプトは [wiki:TracAdmin trac-admin] を通して起動されます:
     26また、 `share/trac` (正確な位置はプラットフォームに依存しますが一般的にはこの位置です。) ディレクトリ内の `cgi-bin`, `htdocs`, `templates`, `wiki-default` といったディレクトリを削除してもかまいません。 (訳注: 0.11 では、これらのディレクトリは `site-packages/trac` の配下に移動しています)
     27
     28このクリーンアップは必須ではありませんが、あとでトラブルシュートを行う場合の切り分けが容易になります。すでに使われていない前のリリースのコードやテンプレートを見るなどという時間の浪費をしたくないのであれば、削除しておく方が楽です。もちろん、ファイルを削除する前にバックアップを作成する方が良いでしょう。
     29
     30=== 2. TracEnvironment をアップグレードする === #UpgradetheTracEnvironment
     31
     32Environment のアップグレードは、マイナーバージョンアップに特別な注意書きがない限り、不要です。
     33
     34アップグレードした Trac がロードされると、アップグレードする必要があるインスタンスが表示されます。アップグレードはオートメーションされたスクリプトを手で実行します。これらのスクリプトでは [TracAdmin trac-admin] を使用します。
    2835{{{
    2936trac-admin /path/to/projenv upgrade
     
    3239このコマンドはもし TracEnvironment がすでに最新の状態になっているときは、何もしません。
    3340
    34 Note: PostgreSQL データベースを使用している場合、このコマンドは「 Environment のバックアップは SQLite を使っているときしか出来ない」というメッセージを出力して失敗します。リポジトリとデータベースのバックアップは手動で行う必要があります。その後、アップグレードを行うために次のコマンドを実行してください:
     41Note: データベースのバックアップはアップグレード時に自動で行われます。
     42この機能は最近の更新で、データベースバックエンドに PostgreSQL や MySQL を使用している場合にも対応しましたが、失敗してしまう場合は手動でバックアップしてください。その後、バックアップをスキップしてアップグレードを行うために、下記のコマンドを実行してください:
    3543{{{
    3644trac-admin /path/to/projenv upgrade --no-backup
    3745}}}
    3846
    39 === Trac ドキュメントを更新する ===
     47=== 3. Trac ドキュメントを更新する === #UpdatetheTracDocumentation
    4048
    41 すべての [wiki:TracEnvironment Tracenvironment] インストールされたバージョンの Trac ドキュメントのコピーを含んでいます。新しくインストールした Trac のドキュメントと同期を取りたいでしょう。 [wiki:TracAdmin trac-admin] がドキュメントを更新するコマンドを提供しています:
     49すべての [TracEnvironment Trac Environment] で、インストールされたバージョンの Trac ドキュメントのコピーを含んでいます。新しくインストールした Trac のドキュメントと同期を取りたいでしょう。 [TracAdmin trac-admin] がドキュメントを更新するコマンドを提供しています:
    4250{{{
    4351trac-admin /path/to/projenv wiki upgrade
    4452}}}
    4553
    46 当然このプロシージャはあなたの `WikiStart` ページをまったく変更せず、そのままに残しておきます。
     54このプロシージャはあなたの `WikiStart` ページ (訳注: `InterMapText` も) をまったく変更せず、そのままに残しておきます。
    4755
    48 === Web サーバを再起動する ===
     56=== 4. Trac Environment とソースコードリポジトリの再同期 === #a4.ResynchronizetheTracEnvironmentAgainsttheSourceCodeRepository
    4957
    50 新しい Trac コードをリロードするために、 Web サーバを再起動する必要があります。 (古い [wiki:TracCgi CGI] プログラムを使用しているときは必要ありません。)
    51 
    52 == 特定のバージョン間のアップグレードについての付記 ==
    53 
    54 以下のセクションでは Trac の特定のバージョンにアップグレードするときにやらなければならないことについて記述します。
    55 
    56 == 0.9 から 0.10 へのアップグレード ==
    57 
    58 Wiki シンタックスでいくつかの変更があったため、いくつかのページでは期待通りに動かないことに気づくでしょう:
    59  * バージョン 0.9 以前、画像ファイルへのリンクはページの中に組み込まれていました。 0.10 以降では、画像ファイルへのリンクは単なる画像ファイルへのリンクとなります。もし、そのページに画像ファイルを組み込みたいならば、 `[[Image]]` マクロを使用して下さい。
    60  * wiki のリンクでスペース文字をエンコードするのに、 `%20` を使用しなくてもよくなりました。その代わり、スペースを含んでいる名前を括って下さい。 (例えば、`wiki:My%20page` の代わりに `wiki:"My page"` を使用することができます。)
    61 
    62 いくつかの拡張機能がバージョンコントロールサブシステムに追加されました。特にスコープつきのリポジトリの対応が向上しました。
    63 これらの機能をうまく利用するために、 '''`resync`''' 操作を [TracAdmin#対話モード trac-admin] で実行することを推奨します。
    64 
    65 [TracAdmin trac-admin] の '''`initenv`''' コマンドの引数リストが変更になったことに注意して下さい: バージョンコントロールシステムの種類を設定するための新しい引数が追加されました。古い使用方法は以下の通りです:
    66 {{{
    67    initenv <projectname> <db> <repospath> <templatepath>
    68 }}}
    69 新しい使用方法ではこうなります:
    70 {{{
    71    initenv <projectname> <db> <repostype> <repospath> <templatepath>
    72 }}}
    73 TracEnvironment を自動で生成するスクリプトを使用している場合は、アップデートする必要があります。もし、 Subversion を使用しているならば、 `<repostype>` 引数に `svn` を指定して下さい。
    74 
    75 == 0.9.3 から 0.9.4 へのアップグレード ==
    76 
    77 レポートのクエリで `LIKE` 節での "%" や日付のフォーマットを使用すると落ちるというバグが Pysqlite 1.x に存在します。パーセント文字を使用するときは、もう一つパーセント文字を付けてエスケープする必要があります: "%%"
    78 
    79 == 0.9.x から 0.9.3 以降へのアップグレード ==
    80 
    81 もし、プラグインを使用しているならば、それらをアップグレードする必要があるでしょう。詳細は http://trac.edgewall.org/milestone/0.9.3 を参照して下さい。
    82 
    83 == 0.9-beta から 0.9 へのアップグレード ==
    84 
    85 静的リソース (CSS, javascript, 画像ファイル) のインクルードは機能しません。 trac.ini の `htdocs_location` を確認してください。 [wiki:TracModPython mod_python], [wiki:TracStandalone Tracd], [wiki:TracFastCgi FastCGI] を使用している場合、単にオプションを削除してください。 [wiki:TracCgi CGI] を使用している場合、 Trac の `htdocs` ディレクトリへの URL マップを修正しなければいけません (以前の記述を削除し、 [wiki:TracCgi#静的なリソースをマッピングする 静的なリソースをマッピングする])。オプションを削除した後でも問題が残っている場合、ファイル `trac/siteconfig.py` のパスを確認し、誤っていれば修正してください。
    86 
    87 Trac 0.9 のベータリリースでプラグインを使用しているか、組み込みコンポーネントの無効化を行っていたら、 [wiki:TracIni trac.ini] でコンポーネントの無効化 / 有効化のルールを更新しなければならないかもしれません。特にグローバルにインストールされたプラグインは、現在では明示的に有効化する必要があります。詳しくは TracPlugins と TracIni を参照して下さい。
    88 
    89 タイムラインでチケットの全ての更新を表示させたい ("チケットの詳細" オプション) 場合も、 [wiki:TracIni trac.ini] での明示的な有効化が必要です:
     58Trac でソースコードをブラウズしているときに "[http://trac.edgewall.org/ticket/6120 リポジトリにチェンジセット ??? が存在しません]" のようなエラーが出る場合は、それぞれの [TracEnvironment Trac environment] のソースコードリポジトリと再同期をする必要があります。
    9059
    9160{{{
    92 [timeline]
    93 ticket_show_details = true
     61trac-admin /path/to/projenv repository resync '*'
    9462}}}
    9563
    96 == 0.8.x から 0.9 へのアップグレード ==
     64=== 5. 静的リソースをリフレッシュする === #a5.Refreshstaticresources
    9765
    98 [wiki:TracModPython mod_python] を使用している場合は Apache HTTPD の設定で mod_python ハンドラの名前を変更する必要があります:
     66もし、静的リソースを直接配布できる ( URL `/chrome/` を使用してアクセス) ようにウェブサーバをセットアップしていたら、同じくコマンドを使用してそれらをリフレッシュする必要があります:
    9967{{{
    100    from: PythonHandler trac.ModPythonHandler
    101    to:   PythonHandler trac.web.modpython_frontend
     68trac-admin /path/to/env deploy /deploy/path
     69}}}
     70このコマンドは、新しい Trac のバージョンとそのプラグインから `/deploy/path` に静的リソースと CGI スクリプト (`trac.wsgi`, など) を抽出します。
     71
     72いくつかのウェブブラウザは、 CSS や Javascript ファイルをしつこくキャッシュしているので、ユーザにはこれらのブラウザのキャッシュの中身を手動で削除するように指示したほうがいいかもしれません。
     73
     74=== 6. 特定の Trac バージョンでの特記事項  === #a6.StepsspecifictoagivenTracversion
     75==== Trac 0.11 から Trac 0.12 にアップグレードする ==== #UpgradingfromTrac0.11toTrac0.12
     76===== Python 2.3 サポート ===== #Python2.3nolongersupported
     77現在 Python 2.4 以降 をサポートします。
     78
     79===== SQLite v3.x ===== #SQLitev3.xrequired
     80SQLite v2.x のサポートは終了しました。もしいまだに Trac で SQLite v2.x のデータベースを使用しているようならば、まず最初に SQLite v3.x に変換する必要があります。詳細は [http://trac.edgewall.org/wiki/PySqlite#UpgradingSQLitefrom2.xto3.x] を参照して下さい。
     81
     82===== [http://trac.edgewall.org/wiki/PySqlite PySqlite] 2 ===== #PySqlite2required
     83[http://trac.edgewall.org/wiki/PySqlite PySqlite] 1.1.x のサポートは終了しました。可能であれば、バージョン 2.5.5 以降のバージョンをインストールして下さい。 (下記 [#Tracdatabaseupgrade Trac データベースのアップグレード] を参照して下さい。)
     84
     85===== 複数のリポジトリのサポート===== #MultipleRepositorySupport
     86最新のバージョンでは複数リポジトリの取り扱いをサポートしています。Trac に複数のリポジトリを追加する予定であるならば、今では複数のリポジトリを扱えるようになっています。詳細については、 [TracRepositoryAdmin#Migration 単一リポジトリからの移行手順] を参照して下さい。
     87
     88もし単一のリポジトリでの運用を行なっていたとしてもこの手順は興味深いものとなるかもしれません。なぜなら、この方法によってリクエスト毎に発生する潜在的に負荷の高い再同期のチェックを避けることができるからです。
     89
     90===== 向上したリポジトリの再同期 ===== #Improvedrepositorysynchronization
     91複数のリポジトリをサポートするのに加えて、今では Trac と リポジトリの同期でより効果的な方法があります。
     92
     93バージョン 0.11 と同様に post-comit フックを使用した同期方法を続けることもできますが、[TracRepositoryAdmin#Synchronization リポジトリの同期方法] や [TracRepositoryAdmin#ExplicitSync 明示的な同期] に書かれている方法の方が、より効果的な同期を行なうことができ、多かれ少なかれ、複数のリポジトリを扱う際に必須となります。
     94
     95Note: もし、 `trac-post-commit-hook` を使用していたならば、上記を参照して、新しいフックに ''アップグレードすることを強くお勧めします'' 。なぜなら、古いフックはデフォルトのリポジトリ以外では動きません。そしてこの場合、適切な通知のトリガーとなりません。
     96
     97===== Authz のパーミッションチェック ===== #Authzpermissionchecking
     98authz のパーミッションチェックが粒度の細かいパーミッションポリシーとしてマイグレートされました。もし authz パーミッションを使用しているならば、 ( `[trac] authz_file` や `authz_module_name` を参照)、 `[trac] permission_policies` で定義するパーミッションポリシーの先頭に、 `AuthzSourcePolicy` を追加しなければなりません。また、グローバルのパーミッション設定から `BROWSER_VIEW`, `CHANGESET_VIEW`, `FILE_VIEW`, `LOG_VIEW` を削除しなければなりません (`trac-admin $ENV permission remove` コマンドまたは、管理パネルの "権限" から削除されます。)
     99
     100==== マイクロ秒のタイムスタンプ ==== #Microsecondtimestamps
     101データベースのテーブルにある全てのタイムスタンプ (セッションテーブルは除く) は "エポックからの秒数" から "エポックからのマイクロ秒数" へ値を変更しました。この変更はカスタムレポートを除いて、ほとんどのユーザは意識せずにすむはずです。レポートで計算に日付/時刻カラムを使用するような場合 (例えば、`datetime()`に渡す場合)、データベースから取り出した値を 1,000,000 で割る必要があります。同様に、もしレポートで日付/時刻と表示される計算された値 (カラム名が "time", "datetime", "changetime", "date", "created" や "modified") をマイクロ秒のタイムスタンプで用いる必要がある場合には、先の計算を1,000,000倍して下さい。
     102
     103==== Trac 0.10 から Trac 0.11 へのアップグレード ==== #UpgradingfromTrac0.10toTrac0.11
     104===== テンプレート と スタイルシート ===== #SiteTemplatesandStyles
     105テンプレートエンジンが Trac 0.11 から Genshi に変わりました。詳細については、 TracInterfaceCustomization を参照して下さい。
     106
     107もし、TracEnvironment の `templates` ディレクトリの中のカスタマイズされた CSS や 修正したテンプレートを使用しているならば、 Genshi のスタイルに変換する必要があります。カスタマイズしたスタイルシートを使い続けるためには、[TracInterfaceCustomization#SiteAppearance サイトの外観] の手順に従ってください。
     108
     109===== Trac マクロプラグイン ===== #TracMacrosPlugins
     110[http://trac.edgewall.org/wiki/ClearSilver ClearSilver] と HDF が使用されなくなったことで、古いスタイルの Wiki マクロ は使用できなくなります。そのため Trac マクロを適応させる必要があるでしょう; 新しいスタイルのマクロに変更する必要があれば WikiMacros を参照してください。新しいスタイルにコンバートした後、配置するディレクトリは wiki-macros ではなく、 plugins を使用してください。 wiki-macros ディレクトリからマクロやプラグインを探すことはもうありません。
     111
     112===== FCGI/WSGI/CGI を使用する場合 ===== #ForFCGIWSGICGIusers
     113CGI で Trac を起動している場合、以下のコマンドを実行して trac.*gi ファイルを取得してください:
     114{{{
     115trac-admin /path/to/env deploy /deploy/directory/path
    102116}}}
    103117
    104 [http://initd.org/tracker/pysqlite 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 形式に変換しなければなりません
     118このコマンドでは、デプロイ用ディレクトリを作成します。デプロイ用ディレクトリには `cgi-bin` と `htdocs` の二つのサブディレクトリが含まれています。 Apache の `httpd.conf` を新しい `trac.cgi` と `htdocs` の場所に更新してください
    105119
    106 もし変換を行うならば、 SQLite の 2.8.x と 3.x の両方をインストールする必要があります (バージョンごとにファイル名が異なるので、同じシステム内に共存できます)。以下に示すコマンドを使用して下さい:
    107 {{{
    108  $ mv trac.db trac2.db
    109  $ sqlite trac2.db .dump | sqlite3 trac.db
    110 }}}
     120===== Web アドミンプラグインのインテグレーション =====
     121もし、 Web アドミンプラグインをインストールしていたら、 Trac 0.11 以降より、 Trac のコードベースの一部となっているのでアンインストールできます。
    111122
    112 Linux で複数のデータベースファイルを一度にアップグレードするために、以下のコマンドが使用できるでしょう。( {{{/var/trac}}} は実際に Trac をインストールしたパスに置き換えて下さい ):
    113 {{{
    114  $ find /var/trac/ -iname "trac.db" | xargs -i bash -c "mv {} {}.2; sqlite {}.2 .dump | sqlite3 {};"
    115 }}}
     123=== 7. Web サーバを再起動する === #RestarttheWebServer
    116124
    117 web サーバに trac.db への書き込み権限を忘れずに付けてください。
     125[wiki:TracCgi CGI] 以外で起動している場合は、 Web サーバを再起動して、新しい Trac コードをリロードしてください。
    118126
    119 変換が成功した後、 `trac2.db` ファイルは削除することができます。 SQLite のアップグレードに関するより詳しい情報は [http://www.sqlite.org/version3.html] を参照して下さい。
     127== 既知の問題 == #KnownIssues
    120128
    121 == 0.7 から 0.8 へのアップグレード ==
     129=== 複数プロジェクトのホストに関して === #parentdir
     130複数のプロジェクトをホストした場合に、配下のプロジェクトのうち一つのプロジェクトで、プラグインの一つが動作していないとき、配下のすべてのプロジェクトではそのプラグインは動作していません。
    122131
    123 0.8 では追加のパーミッションを必要とする新しい機能が加わりました。
    124 新規にインストールを行なった場合は、 anonymous に ROADMAP_VIEW と MILESTONE_VIEW パーミッションがデフォルトで与えられますが、
    125 既存の trac をアップグレードしたときは、
    126 これらのパーミッションを手動で与えなければなりません。:
    127 {{{
    128  $ trac-admin /path/to/projectenv permission add anonymous MILESTONE_VIEW
    129  $ trac-admin /path/to/projectenv permission add anonymous ROADMAP_VIEW
    130 }}}
     132=== Wiki のアップグレード ===
     133`trac-admin` は新しいバージョンでは存在しない以前のバージョンの Wiki ページを削除や移動しません。
     134
     135=== Trac データベースのアップグレード === #Tracdatabaseupgrade
     136
     137既知の問題として、PySqlite のいくつかのバージョン (2.5.2-2.5.4) では、 trac-admin upgrade スクリプトを使用してデータベースを更新することができません。このエラーを避けるために、 sqlite の python バインディングのバージョンをより新しいものかより古いバージョンを使用することを推奨します。詳細については、 [http://trac.edgewall.org/ticket/9434 本家チケット 9434] を参照して下さい。
     138
     139== Python のアップグレード== #UpgradingPython
     140
     141Python を新しいバージョンにアップグレードすると Python パッケージの再インストールが必要となります: Trac も例外ではないですし、 [http://pypi.python.org/pypi/setuptools easy_install] も然りです (もし使用しているならばですが)。 Subversion を使用しているならば、 Subversion の Python のバインディングもアップグレードする必要があります。
     142
     143=== Windows と Python 2.6 === #WindowsandPython2.6
     144
     145もしあなたが、 !CollabNet の Subversion のパッケージを使用しているならばアンインストールする必要があるかもしれません。というのも、 [http://alagazam.net/ Algazam] に気軽に使える Python バインディングがあるからです。 ([http://trac.edgewall.org/wiki/TracSubversion TracSubversion] 参照) いいニュースとして、調整なしに動作します。
     146
     147== データベースの変更 == #ChangingDatabaseBackend
     148=== SQLite から PostgreSQL へ === #SQLitetoPostgreSQL
     149
     150[http://trac-hacks.org trac-hacks.org] の [http://trac-hacks.org/wiki/SqliteToPgScript sqlite2pg] は SQLite のデータベースを PostgreSQL に移行するためのサポートをするスクリプトです。
     151
     152== より古いバージョン == #OlderVersions
     153
     154さらに前のバージョンからのアップグレードについては [trac:wiki:0.10/TracUpgrade#SpecificVersions] を最初に参照してください。
    131155
    132156-----