データのエクスポート
export_data 管理コマンドによるエクスポート
export_data 管理コマンドを用いると、指定したパス配下の Kompira オブジェクトを JSON 形式でエクスポートすることができます。 KE2.0 では kompira コンテナ上で export_data 管理コマンドを実行させるために、ホスト上では以下のように実行してください。
$ docker exec $(docker ps -q -f name=kompira) manage.py export_data [options...] <オブジェクトパス>
デフォルトではエクスポートデータは標準出力に出力されるので、ファイルに書き出したい場合はリダイレクトを利用するなどしてください。
$ docker exec $(docker ps -q -f name=kompira) manage.py export_data <オブジェクトパス> > exported_data.json
export_data 管理コマンドで --zip-mode オプションを指定した場合は、エクスポートデータはコンテナ側に ZIP ファイルとして書き出されることに注意してください。 エクスポートされた ZIP ファイルをホスト側で利用するには、例えば以下のようにエクスポート後にホスト側にコピーしてください。
$ docker exec $(docker ps -q -f name=kompira) manage.py export_data --zip-mode <オブジェクトパス>
$ docker exec $(docker ps -q -f name=kompira) ls # 出力された zip ファイル名を確認
$ docker cp $(docker ps -q -f name=kompira):/opt/kompira/<zipファイル名> .
export_data 管理コマンドのオプション
export_data 管理コマンドには以下のオプションがあります。
| オプション | 説明 |
|---|---|
--directory=DIRECTORY | エクスポートするパスの起点となるディレクトリを指定します(*1) |
--virtual-mode | 仮想ファイルシステムに含まれるデータも出力します |
--owner-mode | エクスポート対象となったオブジェクトの所有者(*2)も出力します |
--zip-mode | ZIP 形式で出力します |
--without-attachments | 添付ファイルデータを出力しません |
-h, --help | ヘルプメッセージを表示します |
--directoryオプションを指定していない場合は/がエクスポートの起点となります。- 所有者であるユーザオブジェクトおよびその所属グループオブジェクトが追加で出力されます。
export_dir 管理コマンドによるエクスポート
export_dir 管理コマンドを用いると、指定したパス配下の Kompira オブジェクトをオブジェクト毎に YAML ファイルとしてエクスポートすることができます。
なお、以下の型を持つオブジェクトの場合は、代表するフィールドのデータのみがファイルとして出力され、
残りのフィールドは、.<オブジェクト名> という名前の YAML ファイルとして、プロパティ情報とともに出力されます。
| 型名 | 代表フィールド | ファイル形式 |
|---|---|---|
| Jobflow(ジョブフロー) | source(ソース) | テキスト |
| ScriptJob(スクリプトジョブ) | source(ソース) | テキスト |
| Library(ライブラリ) | sourceText(ソーステキスト) | テキスト |
| Template(テンプレート) | template(テンプレート) | テキスト |
| Text(テキスト) | text(テキスト) | テキスト |
| Wiki(Wikiページ) | wikitext(Wikiテキスト) | テキスト |
| Environment(環境変数) | environment(環境変数) | YAML |
KE2.0 では kompira コンテナ上で export_dir 管理コマンドを実行させるために、ホスト上では以下のように実行してください。
$ docker exec $(docker ps -q -f name=kompira) manage.py export_dir [options...] <オブジェクトパス>
export_dir 管理コマンドではコンテナ上のファイルシステムにファイルを書き出すことに注意してください。 エクスポートされたデータをホスト側で利用するには、例えば以下のようにエクスポート後にホスト側にコピーしてください。
$ docker exec $(docker ps -q -f name=kompira) manage.py export_dir --current /tmp <オブジェクトパス>
$ docker exec $(docker ps -q -f name=kompira) ls /tmp/ # 出力されたディレクトリ名を確認
$ docker cp $(docker ps -q -f name=kompira):/tmp/<エクスポートされたディレクトリ名> .
ここでは、コンテナ上の /tmp ディレクトリにエクスポートしたのちに、ディレクトリ一式をホスト上の指定したディレクトリ (.) にコピーしています。
export_dir 管理コマンドのオプション
export_dir 管理コマンドには以下のオプションがあります。
| オプション | 説明 |
|---|---|
--directory=DIRECTORY | エクスポートするパスの起点となるディレクトリを指定します(*1) |
--property-mode | 表示名など属性も出力します |
--datetime-mode | 作成日時と更新日時も出力します |
--current=CURRENT_DIR | 出力先のディレクトリを指定します |
--without-attachments | 添付ファイルデータを出力しません |
--inline-attachments | 添付ファイルデータをYAMLファイルに含めて出力します |
--linesep=LINESEP | 代表フィールドを出力するときの改行コードを指定します(*2) |
-h, --help | ヘルプメッセージを表示します |
--directoryオプションを指定していない場合は/がエクスポートの起点となります。LINESEPにはos_linesep,lf,crlf,no_changeのいずれかを指定できます。os_linesepでは OS 標準の改行コードに、lfでは\nに、crlfでは\r\nに変換します。no_changeを指定したときは改行コードを変更しません。デフォルトではos_linesepです
注釈: --linesep は :ref:テキスト形式 <data_export> のファイルにのみ影響します。