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 Kompira上の PATH 以下のオブジェクトに含まれる添付ファイルのみ抽出します。 --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) を上書きインポートしてください。 最後に、ブラウザからアクセスして、添付ファイルデータが移行されていることを確認してください。