= チケットデータのインポート = #Importingticketdata
[[PageOutline]]

他の問題追跡システムから移行することによって、チケットを通じて外部のアクションを実行したり、様々なデータベースと簡単に同期するために、 Trac にチケットをインポート又は更新するためのツールやプラグイン、スクリプトがあります。

下記で、いくつか紹介します。

== !TicketImportPlugin ==

 [http://trac-hacks.org/wiki/TicketImportPlugin TicketImportPlugin] :: このプラグインは '''CSV ファイル''' 及び '''Excel ファイル''' ([http://pypi.python.org/pypi/xlrd xlrd library] をインストールすれば) からチケットをインポート又は更新します。

== !ExportImportXlsPlugin ==

 [http://trac-hacks.org/wiki/ExportImportXlsPlugin ExportImportXlsPlugin] :: このプラグインは '''XLS ファイル''' を経由して、チケットをインポート及びエクスポートするための管理画面を追加します。
  * Python パッケージ xlwt/rxld に依存します

== Bugzilla ==

[http://trac-hacks.org/wiki/BugzillaIssueTrackingPlugin BugzillaIssueTrackingPlugin] :: TracLinks を保持したまま Trac に Bugzilla を統合します。

[http://trac.edgewall.org/browser/trunk/contrib/bugzilla2trac.py bugzilla2trac.py] スクリプトを使用すると、チケットのデータを Bugzilla からインポートすることができます。 bugzilla2trac.py スクリプトは Trac の配布を展開した contrib/ ディレクトリにあります。

{{{
$ bugzilla2trac.py
bugzilla2trac - Imports a bug database from Bugzilla into Trac.

Usage: bugzilla2trac.py [options]

Available Options:
  --db <MySQL dbname>              - Bugzilla's database
  --tracenv /path/to/trac/env      - full path to Trac db environment
  -h | --host <MySQL hostname>     - Bugzilla's DNS host name
  -u | --user <MySQL username>     - effective Bugzilla's database user
  -p | --passwd <MySQL password>   - Bugzilla's user password
  -c | --clean                     - remove current Trac tickets before importing
  --help | help                    - this help info

Additional configuration options can be defined directly in the script.
}}}

現在のところ、 Bugzilla からインポートされるのは以下のデータです:

  * バグ
  * バグの更新 (属性の変更)
  * バグの添付ファイル
  * ユーザ名とパスワード (htpasswd ファイルに出力します)

bugzilla2trac.py スクリプトは変換を楽にする機能を数多く備えています。例えば:

  * PRODUCT_KEYWORDS:  Trac にはプロダクトという概念がありません。このため、プロダクトをチケットのキーワードとして紐づけられるようになっています

  * IGNORE_COMMENTS:  特定の正規表現にマッチする Bugzilla コメントをインポートしないようにします

  * STATUS_KEYWORDS:  Trac にない Bugzilla のステータスに対してチケットのキーワードを割り当てます。デフォルトでは、 Bugzilla のステータス 'VERIFIED' と 'RELEASED' は、 Trac のキーワードに変換されます

使用できるオプションについての更なる詳細についてはスクリプトの先頭にある configuration セクションを参照してください。

== Jira ==

 [http://trac-hacks.org/wiki/JiraToTracIntegration JiraToTracIntegration] :: Atlassian が開発している Jira のバックアップファイルから Trac にインポートが行えます。このプラグインは Python 3.1 で書かれたコマンドラインツールで、下記の機能があります:
   - Jira のバックアップ XML ファイルを解析する
   - Jira のデータおよび添付ファイルを Trac の  [http://trac-hacks.org/wiki/XmlRpcPlugin XmlRpcPlugin] に送信する
   - Jira のユーザ情報と base64 エンコードされた SHA-512 パスワードから htpasswd ファイルを生成する

== Mantis ==

 [http://trac-hacks.org/wiki/MantisImportScript MantisImportScript] :: 以下のデータを Mantis から Trac にインポートします:
  * バグ
  * バグのコメント
  * バグの状態 (フィールドの変更)
  * 添付ファイル (ファイルが filesystem になく mantis db にある場合)

== !PlanetForge ==

 [http://trac-hacks.org/wiki/PlanetForgeImportExportPlugin PlanetForgeImportExportPlugin] :: このプラグインは COCLICO プロジェクトによりデザインされたオープンフォーマットを用いて、Trac のデータ (Wiki、チケット、コンポーネント、パーミッション、リポジトリ等) をエクスポートします。webadmin パネルと'trac admin ...' コマンドを拡張します。まだ、'import' の機能はありません。

== Scarab ==

 [http://trac-hacks.org/wiki/ScarabToTracScript ScarabToTracScript] :: Scarab の Issue を Trac のチケットに移動させます。
    * [http://trac-hacks.org/wiki/XmlRpcPlugin XmlRpcPlugin] が必要です

== Sourceforge ==

 [http://trac-hacks.org/wiki/SfnToTracScript SfnToTracScript] :: !SourceForge の新しいバックアップファイルをインポートします。 (#Trac3521より)

 [http://trac.edgewall.org/browser/trunk/contrib/sourceforge2trac.py sourceforge2trac.py] スクリプトを使用すると、 Sourceforge からチケットのデータをインポートすることができます。 sourceforge2trac.py スクリプトも Trac 配布物を展開した contrib/ ディレクトリにあります。

== その他 == #Other

Trac は データの保存に SQL データベースを使用しているので、データベースを調査することによって他のシステムからインポートすることができます。 [http://www.sqlite.org/sqlite.html sqlite] のコマンドラインで Trac データベースのテーブルを参照し、あなたが使用しているアプリケーションからデータベースのテーブルをインポートしてください。

=== カンマ区切りファイル - CSV === #Commadelimitedfile-CSV
詳しくは [http://trac.edgewall.org/attachment/wiki/TracSynchronize/csv2trac.2.py csv2trac.2.py] を参照して下さい。 この方法は手動でたくさんのチケットを登録するようなときにとても便利です。 (最近の Trac のリリースでは、このスクリプトを使用するのにチケットの分類のフィールド (task など) が必要です)
スクリプト上のコメント: スクリプトの 168 行目にエラーがあります。 ('Ticket' は 'ticket' としなければなりません )。また、重要度と優先度でリストされる値が逆になっています。

----
See also:
 * Wiki ページのインポート/エクスポートについて: TracAdmin
 * チケットのエクスポートについて: TracTickets, TracQuery