convert_files.py を用いた添付ファイルデータの移行手順
# 1. はじめに
Kompira Enterprise v1.6.4 以降では添付ファイル型フィールドの内部での保存形式が変更になりました。v1.6.3 以前ではサーバ上の実ファイルとして保存していましたが、v1.6.4 以降ではデータベースに添付ファイルが保存されるようになり、エクスポートやインポート処理の対象として扱われるようになりました。

v1.6.0～v1.6.3 の Kompira サーバを v1.6.4 以降にアップデートする場合は、自動的に添付ファイルのデータは新しい形式に移行されます。しかし、v1.6.4 以降の Kompira サーバを新規に構築して、v1.5 系または v1.6.0～v1.6.3 のデータを移行したい、という場合には単純なエクスポートとインポートでは添付ファイルデータを移行することができません。

そのような場面では、添付ファイルの移行ツール `convert_files.py` を利用することで、古い環境から新しい環境へ添付ファイルデータを移行することが出来ます。この資料では添付ファイル移行ツールを用いた添付ファイルデータの移行手順について説明します。

※ 添付ファイル移行ツール `convert_files.py` は Kompira Enterprise v1.6.7 以降に同梱されるようになりました。

# 2. 添付ファイル移行ツール convert_files.py について
## 2.1.  tools/convert_files.py
convert_files.py は Ver.1.5系、および、Ver.1.6.3 以前の Kompira Enterprise 上で作成された添付ファイルデータを、Ver.1.6.4以降の Kompira に移行するためのツールです。

v1.6.7 以降の Kompira Enterprise のインストールパッケージを展開すると、tools/convert_files.py に含んでいます。この Python スクリプトは単独で Python2 系でも Python3 系でも動作するように作られています。

### 2.1.1. オプション
convert_files.py のオプションは以下のとおりです。

```
  --json-mode            JSON形式でファイルを出力します。
  --directory <PATH>     Kompira上の PATH 以下のオブジェクトに含まれる添付ファイルのみ抽出します。
  --filename <FILENAME>  出力するファイル名を指定します。
```

移行先の Kompira バージョンによっては `--json-mode` を指定する必要がある場合があることに注意してください。

# 3. 添付ファイルの移行手順
## 3.1. 添付ファイル以外のデータ移行
旧バージョンがインストールされた Kompira のサーバからオブジェクトをエクスポートして、新 Kompira サーバにインポートしておきます。

この時点では、添付ファイルは移行されないため、添付ファイルフィールドの添付ファイルデータは空となります。

## 3.2. 添付ファイルデータのエクスポート

tools/convert_files.py スクリプトを、旧バージョンの Kompira がインストールされているサーバの適当なディレクトリ上にコピーします。

次に旧 Kompira サーバ上で、移行先の Kompira のバージョンに合わせたオプションを指定して、上記の convert_files.py スクリプトを実行します。

なお、旧バージョンの Kompira が Ver.1.6.2 以降の場合、このコマンドの実行には root 権限が必要となり、パスワード入力が求められます。sudo 権限を持つユーザか root ユーザで実行してください。

### 3.2.1. 移行先の Kompira のバージョンが Ver.1.6.7 以降の場合
この場合は、オプション無しで以下のように実行します。

```
$ ./convert_files.py
```

同じディレクトリに抽出した添付ファイルを含んだエクスポートデータが kompira_export_files.zip という
ZIP形式のファイルで作成されます。

### 3.2.2. 移行先の Kompira のバージョンが  Ver.1.6.4 - 1.6.6 の場合

1.6.6 以前のバージョンでは、ZIP形式のエクスポートデータのインポートには対応していないため、従来の JSON 形式で添付ファイルデータを取り出す必要があります。以下のように --json-mode オプションを付けて実行してください。

```
$ ./convert_files.py --json-mode
```

上記を実行すると、kompira_export_files.json というファイルが作成されます。

## 3.3. 添付ファイルデータのインポート
3.2. で出力されたファイルを新バージョンがインストールされている Kompira サーバに転送してから、新 Kompira 上で以下のように上書きインポートします。

```
$ sudo /opt/kompira/bin/manage.py import_data --overwrite-mode kompira_export_files.zip  # または、kompira_export_files.json
```

ブラウザ上から添付ファイルをインポートする場合は、Kompiraサーバにブラウザからログインして、'/' ディレクトリに移動してから、kompira_export_files.zip (または、kompira_export_files.json) を上書きインポートしてください。

最後に、ブラウザからアクセスして、添付ファイルデータが移行されていることを確認してください。
