公開日:2025-03-06
こんにちは!あかねです。
kintoneを活用して業務を進める企業にとって、データのバックアップは非常に重要です。特に、誤操作やアプリ改修時の思わぬ動きによるデータ損失のリスクに備え、定期的にレコード情報のバックアップをすることは欠かせません。
しかし、kintoneには基本機能でのバックアップ機能はなく、「ファイルに書き出す」機能も手動でしか行えないため、「定期的にバックアップを取る仕組みを作りたい」と考える方も多いのではないでしょうか?
そこで本記事では、gusuku Customine(以下、カスタマイン)の機構であるJob Runner(ジョブランナー)の定期実行を活用し、kintoneのデータを定期的にバックアップする方法を紹介します。
目次
なぜkintoneのデータバックアップが必要なのか?
kintoneはクラウドサービスのためデータの損失リスクは大きくはありませんが、以下のような人為的な作用によるデータ損失の可能性は大いにあります。
- 誤ってレコードを削除してしまった
- プラグインやカスタマイズを試す中で、意図せずデータを上書きしてしまった
データが上書きされた場合「レコードの変更履歴」機能がONになっていれば、1レコードずつ前のリビジョンに戻すことが可能です。しかし、「レコードの変更履歴」機能がONであっても、上書きしてしまったレコード数が多い場合には”1レコードずつ”リビジョンを戻す必要があるため、とても現実的ではありません。
そのため、重要なアプリに関しては定期的にデータをバックアップしておき、復旧する仕組みを用意しておくことが重要になります。
kintoneの「ファイルへ書き出す」機能だけでは不十分
kintoneには「ファイルへ書き出す」機能が備わっています。しかし、手動でのエクスポートしかできません。つまり、都度担当者が手動でCSVをダウンロードし、保存する必要があります。これではバックアップの取り忘れが発生したり、作業負担が増えたりするため、自動化する仕組みが求められます。
そこで、カスタマインでCSV出力の自動化を実現します。
Job Runner でバックアップを自動化する方法
1. 事前準備
バックアップの自動化処理を設定する前に、以下の準備をしておきます。
-1.バックアップ対象のkintoneアプリ/フィールドを決定
kintone SIGNPOST「2-18 守るべきデータ」にもあるように、”本当に守るべきデータ”を見極めてバックアップをとることをおススメします。
理由は様々ですが、特に今回紹介する方法を用いた場合、目に見える影響として
- kintoneのディスク使用量を圧迫する
- Job Runnerの処理可能時間には上限がある
からです。
そのため、業務継続や法的要件に関わるデータなどにフォーカスし、”本当に守るべきデータ”を見極めて重要なデータを確実に保持できる対策をとりましょう。
今回は、「メニュー管理」アプリを例に説明していきます。
このアプリはテーブルが2つ設定されているのが特徴です。

参考
kintone SIGNPOST「2-18 守るべきデータ」について、アールスリーが勝手に解説しているコラムも要チェック!
-2.CSV出力を行うためのテンプレート保存用アプリを用意
バックアップ用CSVを出力するために、Excelテンプレートを保存しておくためのアプリを用意します。
【テンプレート】 アプリ | フィールドタイプ | フィールド名 | フィールドコード |
---|---|---|---|
1 | 文字列(1行) | 帳票名 | 帳票名 |
2 | 添付ファイル | テンプレート | テンプレート |

-3.出力したCSVファイルの保存先アプリを用意
出力したバックアップ用CSVを保存しておくためのアプリを用意します。
【バックアップファイル管理】アプリ | フィールドタイプ | フィールド名 | フィールドコード |
---|---|---|---|
1 | 数値 | アプリID | アプリID |
2 | 文字列(1行) | アプリ名 | アプリ名 |
3 | 作成日時 | 作成日時 | 作成日時 |
4 | 添付ファイル | バックアップファイル | バックアップファイル |

2.CSV出力を行うためのテンプレートを作成する
次に、Excelを使用してバックアップ用CSVを出力するためのテンプレートを作成します。
-1.テンプレートの元となるCSVを用意
テンプレートを作成するためのフォーマットにするため、kintoneの「ファイルへ書き出す」機能で”守るべきデータ”とレコード番号を含んだCSVファイルを出力します。
その際、必ず「先頭行を項目名にする」にチェックが入っていることを確認してください。

また、”必要なのは先頭行の項目名のみ”のため、レコードデータは削除しておきます。

ポイント
1からテンプレートを作成しても良いですが、効率よく作成するために「ファイルへ書き出す」機能を使用します。
-2.アプリ設計情報をダウンロードする
テンプレートに必要なフィールドコードを簡単にチェックするため、カスタマインからアプリ設計情報をダウンロードします。


ダウンロード方法の詳細は、以下をご覧ください。
▼kintoneアプリの設計情報ダウンロード機能について
-3.テンプレート化する
2-1.で作成したフォーマットと2-2.でダウンロードしたアプリ設計情報を使用し、テンプレートを作成します。
作成には${フィールドコード}や$FOREACH~$ENDのようなgusukuコマンドを使用します。gusukuコマンドの記載方法については、リファレンスマニュアルに記載されているので、ご確認ください。

ポイント
バックアップデータにテーブル行が含まれている場合、少し工夫が必要です。kintoneヘルプにもあるように、各レコードのデータの開始行にアスタリスク「*」を記載し、それ以外は空にする必要があります。
このテンプレートでは、該当セルにExcel関数を用いてアスタリスク「*」を表示しています。
A4セル【=IF(B4=OFFSET(B4,-1,0), “”, “*”)】
A7セル【=IF(B7=OFFSET(B7,-1,0), “”, “*”)】
最後にExcelファイルとして保存し、テンプレートアプリに添付しておきます。

3.CSV出力を自動化するカスタマイズを設定する
あとは、Job Runnerの定期実行でCSV出力を行うカスタマイズを作成し、実行するスケジュールを設定して完成です。
カスタマイズ画像


今回は簡単に、1日1レコードを追加していく設定にしました。実際には、kintoneのディスク容量やJob Runnerの処理可能時間などを考慮し、”〇世代分だけ残しておく”ようなカスタマイズを作成することをおススメします。
kintoneの「ファイルを読み込む」機能の注意点
kintoneの「ファイルを読み込む」機能を使えば、バックアップデータからレコード情報を復元することができます。しかし、全てのデータを元通りにできるわけではありません。添付ファイルフィールドやプロセス管理のステータス・作業者など、ファイルからデータの登録や更新ができない情報もあります。
注意すべきポイントの例として、以下の2点を挙げます。
- 添付ファイルフィールドを含んだテーブル
テーブルを読み込む際は、すべてのフィールド情報を指定する必要があります。しかし、「ファイルを読み込む」機能では添付ファイルフィールドの更新ができないため、添付ファイルを含むテーブルはこの機能では更新できません。そのため、テーブル内に添付ファイルフィールドを配置する際は慎重に検討しましょう。
どうしてもテーブル内に添付ファイルフィールドを用いたい場合は、gusuku Deploitなどの「ファイルを読み込む」機能以外の方法で、バックアップ・復元手段を検討しましょう。 - ルックアップの「ほかのフィールドのコピー」に指定されているフィールド
カスタマインやJavaScriptを用いて、ルックアップの「ほかのフィールドのコピー」に指定されているフィールドを有効化し、追加・編集画面で値を直接編集している場合は要注意です。
「ほかのフィールドのコピー」として設定されているフィールドは、「ファイルを読み込む」を行う際に指定することができません。インポート時にルックアップのコピー元アプリの情報に書き換えられてしまうため、要注意です。
このように、アプリの構成から気を付けておく必要があります。そのため、「ファイルを読み込む」際の注意点を確認しながら、最適なアプリ構成やバックアップ方法を検討しましょう。
▼データの登録や更新ができないフィールドや情報がないかを確認する
さいごに
kintoneのデータは、業務にとって非常に重要な資産です。誤操作やトラブルでデータを失うリスクに備え、定期的なバックアップを行うことが不可欠です。
そこで今回はカスタマインを活用し、kintoneのデータをCSVで定期バックアップする仕組みをご紹介しました。
バックアップは「取ること」が目的ではなく、いざという時に確実に復元できる状態を作ることが本当の目的です。バックアップデータをどこに保存し、どう管理し、どのように復旧するのかをあらかじめ決めておくことで、万が一の際にも慌てずに対応できます。
確実なバックアップ体制を整え、安心してkintoneを活用できる環境を作っていきましょう!


投稿者プロフィール

-
サイボウズのパートナーさん担当です!
gusuku Customine大好きで転職しました!