@kintone/data-loaderはコマンドライン上でkintoneのレコードをインポート・エクスポートできるツールです. ちょうど,cli-kintoneの後継にあたりそうなツールです. 今回はその@kintone/data-loaderを使ってみます.
※記事は2021/3/5時点の情報です. 2021/3/5現在,@kintone/data-loaderの機能更新は頻繁に行われているようです. できるだけ最新情報を反映するつもりですが,多少のラグはお許しください.
インストール
@kintone/data-loaderはNode.jsで動作します. Node.jsのインストールがまだの人は,まずこちらからインストールを行いましょう. Node.js(および付属するnpm)のインストールができたら,下記コマンドで@kintone/data-loaderをインストールします.
$ npm install -g @kintone/data-loader
グローバル汚染が嫌な人は,npxを使いましょう. こちらが参考になります.
kintoneからエクスポート
基本の使い方
kintoneにあるレコードを,ローカルにエクスポートします. 「https://example.cybozu.com」,「username」,「password」,「appId」はご自身のkintone設定に合わせて変更してください. cli-kintoneと違って,–base-urlは「https://」から必要です.
$ kintone-data-loader \export\
--base-url https://example.cybozu.com \
--username username \
--password password \
--app appId# 実行結果↓[
{"レコード番号": {"type":"RECORD\_NUMBER","value":"1"},"更新者": {
...
},
...
...
]
cli-kintoneではCSV形式でエクスポートされていましたが,kintone-data-loaderではJSON形式ですね.
上記ではコマンド内にkintoneのURLや認証情報を書いていますが,下記のように予め環境変数で指定することも可能です.
# 環境変数にあらかじめkintoneの情報を設定する [Windows(PowerShell)の場合]set-item"env:KINTONE\_BASE\_URL"https://example.cybozu.com
set-item"env:KINTONE\_USERNAME"username
set-item"env:KINTONE\_PASSWORD"password# 環境変数にあらかじめkintoneの情報を設定する[Macの場合]exportKINTONE_BASE_URL=https://example.cybozu.comexportKINTONE_USERNAME=usernameexportKINTONE_PASSWORD=password# コマンド実行$ kintone-data-loaderexport--app appId
以降は,環境変数にkintoneのURLや認証情報している場合のコマンドのみ示します.
主なオプション
オプションを追記することでエクスポートの方法を変えることができます.
ファイルにエクスポート
「> ファイルのパス」とすれば,ファイルにエクスポートされます. デフォルトではJSON形式でエクスポートされるので,ファイルの拡張子は「.json」にしておきましょう.
$ kintone-data-loaderexport--app appId\>example.json
「デフォルトでは」と書きましたが,2021/3/5現在ではJSON形式しかサポートしていないようです.
$ npx kintone-data-loaderexport--app appId --format csv\>example.csv
...
Error: Unknown format type.'csv'is unknown as a format option.
...
ソースコードを見た限りでは,CSVにはサポートしてくれそうな雰囲気はあるので,今後に期待しましょう.
添付ファイル付きでエクスポート
「–attachment-dir 添付ファイルのディレクトリのパス」とすれば,添付ファイル付きでエクスポートされます.
$ kintone-data-loader export --app appId --attachment-dir attachment > example.json
個人的には,この機能が目玉な気がします. 1コマンドで,添付ファイルをすべてダウンロードできるのは便利ですね.
kintoneにインポート
ローカルにあるレコードを,kintoneにインポートします.
$ kintone-data-loader import --app appId --file-path example.json
※2021/3/5現在,レコードの更新には対応していないようです. また,添付ファイルフィールドにも対応していないようです. JSONファイルのフィールドタイプが"RECORD_NUMBER"と"FILE"の箇所は消してから,インポートに指定すると良いです.
所感
ローカルに簡易なバックアップを取るという点では便利に使えそうですね. 特に,添付ファイルも含めたバックアップとなると自分で実装するのは大変なので,恩恵が大きいですね. 少し複雑な,kintoneからkintoneへのバックアップなどになると,@kintone/rest-api-clientなどを使ってコードを書いてしまった方が楽そうですね.