#kintone100日チャレンジ Day093:削除前に定義と値をZIP退避!「フィールド復元バックアッププラグイン」を組んでみた

#kintone100日チャレンジ Day093:削除前に定義と値をZIP退避!「フィールド復元バックアッププラグイン」を組んでみた

記事
IT・テクノロジー
面倒解決エンジニアの森田ユウゴです。
台湾からお届けする「#kintone100日チャレンジ」の93日目。

fable復活!
しかし、私の環境でclaude updateなどを試してもCLI版にfableが来ない…。
久しぶりにアプリ版Claudeを使って、fableを使ってみているのでした…。
kintone関連ではまだ使えていませんが、複雑に絡み合ったスキルやリポジトリの整理でかなり正確そうな動きをしている印象。これから残り80%の残量を使って、やりたかった複雑な整理をしていこうと思います…。

さて、本日のテーマは、kintoneアプリを改修する管理者向けの「フィールド復元バックアッププラグイン」。削除前にフィールドの定義とレコードの値を同じZIPへ退避し、必要になったらプラグイン設定画面から復旧する構成です。

「フィールド復元バックアッププラグイン」について

🎯 どんな課題に向き合ったか(現場の不とベネフィット)


現場の「不」: フィールドの削除操作は簡単ですが、「アプリを更新」すると、そのフィールドに保存されていた値も消えます。フィールドを同じ名前で作り直しても、過去の値までは戻りません。

導入後の世界(ベネフィット): アプリ改修前に対象フィールドを選び、定義と全レコードの値をZIPへ保存できます。誤って削除した場合は、そのZIPを使ってフィールドの再追加から値の書き戻しまで実行できます。

💡 着想・こだわり(既存との違い)


kintoneのバックアップには、ファイル書き出しやアプリテンプレート、完成度の高い既製サービスなど、すでに複数の選択肢があります。

今回のこだわりは、アプリ全体ではなく「これから削除・変更するフィールド」に対象を絞ったことです。

改修前に対象フィールドを選ぶと、フィールド定義と各レコードの値を1つのZIPへまとめます。復元時は同じZIPからフィールドを追加し、アプリ設定を反映して、既存レコードへ値を書き戻します。

設定のバックアップとデータのバックアップを別々に管理せず、フィールド単位の復旧材料として一緒に保管する。アプリ改修の直前に使う「保険」という発想です。

✨ これで出来ること(機能概要)


まずはこちらをご覧ください。
対象フィールドをZIPへ保存: 選択したフィールドの定義と、全レコードに保存された対象フィールドの値をまとめてダウンロードします。

削除後の一括復元: ZIPを選択すると、フィールドの追加、アプリ設定の反映、既存レコードへの値の書き戻しを続けて実行します。

復元前の内容確認: 対象フィールド、レコード件数、値のサンプルを設定画面で確認してから復元できます。

「案件管理」アプリの確度フィールドで試す

今回は、kintoneアプリストアのサンプルアプリ「案件管理」を使いました。

まずプラグイン設定画面で「確度」フィールドを選択し、ZIPバックアップを取得します。ダウンロードしたZIPは、復旧が必要になるまで安全な場所に保管します。

次にフォームから「確度」フィールドを削除し、「アプリを更新」します。この時点でフォームからフィールドが消え、各案件に入力されていた確度の値も表示できなくなります。

そこで設定画面へ戻り、先ほどのZIPを選択します。内容を確認して「復元を実行」すると、「確度」フィールドが再作成され、各レコードの値も書き戻されます。

課題


現時点では下記のような課題が残っています。

元のフォーム位置は復元できない
フィールドの定義と値は復元できますが、元のフォーム上の配置までは保存・復元しません。追加されたフィールドはフォームの一番下に配置されるため、復元後に手動で位置を整える必要があります。

同じアプリの既存レコードだけが対象
誤ったアプリへの書き込みを防ぐため、バックアップ元と復元先のアプリIDが異なる場合は中止します。また、レコード番号を使って既存レコードを更新する仕組みのため、削除済みのレコード自体は再作成しません。

復元処理は自動でロールバックされない
復元はフィールド追加、アプリ設定反映、レコード更新の順に進みます。途中で失敗しても、完了済みの処理は自動で元に戻りません。本番アプリで利用する前に、テスト環境でバックアップと復元の両方を確認する必要があります。

さいごに

フィールド削除の怖さは、操作の簡単さと、失われるデータの重さが釣り合っていないことです。

削除や大きな設定変更の直前に、対象フィールドの定義と値を同じZIPへ退避しておく。復旧方法まで含めて準備してからアプリを変更することで、万一のときの選択肢を残せます。

#kintone100日チャレンジ として、2026年4月から毎日プラグインをバイブコーディングしています。明日もお楽しみに!

私森田ユウゴはココナラでkintoneに関する各種サービスを出品しております。

SIerの中でもインフラSEとして約10年、特に「運用保守」にはベンダーとして深く携わってきました。
作りっぱなしにしない導入やカスタマイズのご提案が可能です。
お気軽にご相談をくださいませ
→森田ユウゴのプロフィールはこちら👇


サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す