[変換/Excel] RESTの応答(XML)に無いフィールドとCSVへのエクスポート

20149909539_927a03480d_b

Redmineの公式サイトからRESTで取得したXMLファイルは、ユーザーが画面から入力するフィールドが主で、システム内部で使用するフィールドは含まれていません。

今回は「issues」テーブルに直接データを投入する予定ですので、こうしたフィールドにも値を設定する必要があります。

また、文字化けを防ぐためには、CSVファイルをUTF-8にする必要があるのですが、Excelの標準機能は対応していません。そこでエクスポートには、fnyaさん作のアドオン『Excel CSV I/O』を使用させていただくことにしました。

スポンサーリンク

XMLデータと「issues」テーブルの比較

RESTで取得したXMLファイルと「issues」テーブルのフィールドを比較すると、XMLファイル側に次のフィールドが不足していました。

  • lock_version
  • parent_id
  • root_id
  • lft
  • rgt
  • is_private

Redmineの公式サイトでチケット内容を見ると、ラベル「親チケット」が表示されないので、親子チケットの構成にする必要はなさそうです。また、プライベートチケットに設定する必要もありませんね。これらのことから、不足していたフィールドには次のように値を設定することにしました。

フィールド名
lock_version 0
parent_id (NULL)
root_id チケット番号
lft 1
rgt 2
is_private 0

Excelシートに列(フィールド)を追加

先の検討に沿って、Excelシートに列(フィールド)を追加して値をセットしました。並び順ですが、『A5:SQL Mk-2』にはマッピングの機能があるので、空いているところに追加すればOKです。

データをCSV形式でエクスポート

これで必要な変換はすべて終わったので、CSV形式でエクスポートします。ただ、EXCELの標準機能ではUTF-8でCSVファイルを作成できませんので、fnyaさん作のアドオン『Excel CSV I/O』を使用させていただきます。出力時の設定は次の通りです。

長かったですが、これでデータの準備がすべて整いました。次はいよいよ、MySQL(Redmine)の「issues」テーブルに、『A5:SQL Mk-2』を使用してデータを投入します。

最後までご覧いただきありがとうございます。
スポンサーリンク

フォローする