NCMBクライアント、ncmb-cliにCSVインポート機能を追加しました。管理画面上で行うものよりに若干機能を追加しています。
CSVからJSONに変換しつつインポート
通常のCSVファイルを管理画面でインポートした場合、ほぼすべて文字列としてしかインポートできませんでした。ncmb-cliではCSVからJSONに変換する機能を踏襲しているので数値や日付、オブジェクトなどを変換した上でインポートできます。
対応しているのは以下の型です。
- 数値
- 文字列
- 真偽値
- 日付
- 位置情報
- オブジェクト
これらをフラグで指定して変換しながらインポートできます。
既存のクラスにインポート可能
管理画面のインポートではすでにあるクラス名に対してはインポートできませんでした。ncmb-cliではインポート時に取り込むクラス名を指定します。既存の場合であればデータは追記されます。
デフォルトではファイル名を使います(User.jsonの場合はUserクラスに入ります)。
データの存在チェック
指定されているすべてのパラメータを使ってデータの存在チェックを行います。それにマッチしたデータがあった場合はインポートしません。一つでもデータが違う場合はインポート対象になります。
徐々に増えていくデータなど、何度も繰り返しても重複して入らないようになっています。ただし、検索の分APIコールは使われますので注意してください。
使い方
インストールはnpmでできます。
npm install ncmb-cli
後はコマンドを打つだけです。
ncmb csv import /path/to/csv/Item.csv --classname Item -b -d --object -l
後はログが流れていきます。非同期で処理しているので、行番号は並んでいないかも知れません。
Row #1, data exist. objectId is rFCoQOHkkCBdGPKG Row #2, data exist. objectId is zLbqne8Gv9OITMjG
既存データのインポートにぜひお役立てください。ミスした時に備えて、あらかじめデータのエクスポートは行っておいた方が良いでしょう。