これは NTTテクノクロスアドベンドカレンダー2022 の14日の記事です
こんにちは、NTTテクノクロスの竹村(@TACK_TX)です
リモートワーク製品の開発とともに、kintoneによる社内業務系の管理アプリ開発、維持管理保守を担当しています
kintoneを顧客情報の管理等に利用しており、非常に重要なデータを扱っています
そこで不慮の事故に備えて、日々のバックアップについて検討・導入したので、そちらの共有をしていきます
■プラグイン導入による有料バックアップ
●アプリのバックアップ
gusuku Deploit
アプリ自体のバックアップを取っており、バージョン管理が可能です
変更履歴なども取れるため、特定バージョンへの巻き戻しも可能です
リリース用と試験用に別アプリを作るなどの運用対処をしている場合は、
同期も出来るため大幅な改善が見込めます
後から導入するとアプリのフィールドの制約で効果が出にくいため、
最初にアプリを作る段階で入れておきたいです
●レコードのバックアップ
kBackUP
定期バックアップを自動で取ってくれます
標準機能ではバックアップできない添付ファイルも取ってくれるのが個人的に嬉しい点です
レコードの追加・編集・削除のGUI操作がされたタイミングで、自動的にオンラインバックアップします
ただし、CSVやAPIを経由する操作にはオンラインバックアップが機能しません
オンラインバックアップの保管期限が30日間なのも注意点です
■標準機能による無料バックアップ
●標準機能によるレコードのファイル書き出し
権限付与さえしておけば、誰でもワンボタンでバックアップが取れます
ラベル、添付ファイル、関連レコード一覧、コメント、変更履歴は取れないため、
それらも取りたい場合は前述したkBackUPなどを導入したほうがよいです
手動であるため、誰かが定期的に実施しないといけない点は注意です
●API+スケジューラによるレコードのファイル書き出し
コマンドラインツールのバックアップ処理を定期実行してみよう
コマンドラインツールのバックアップ処理を定期実行してみよう
kintoneコマンドラインツールで自動バックアップを実施します
コマンドラインツール+batファイルで該当アプリのレコードをバックアップします
>cli-kintone.exe --export -a <バックアップ元のアプリID> -d <バックアップ元のドメイン名> -t <バックアップ元のAPIトークン> -e sjis -c "<バックアップしたいフィールドのフィールドコード(カンマ区切り)>" -b <添付ファイルのエクスポート先ディレクトリ> > backup.csv
上記を記載したbatファイルをcronやタスクスケジューラーで自動実行すれば自動バックアップになります
出力されるCSVファイルは標準機能によるレコードのファイル書き出しとは違う形式となるため、互換性がない点には注意です
具体的な差分の一部としては、「ヘッダが異なる」「文字コードが違う」などになります
余談ではありますが、cli-kintoneを使うと、特定の条件分岐でレコードの一括更新などができます
例えば「契約満了日を迎えた顧客のレコードステータスを変える」、「解約された顧客を非表示にする」などです
具体的には
1.特定のアプリからレコードを取得
>cli-kintone.exe --export -a アプリID -t APIトークン -e エクスポートするファイルのエンコード方式 > 上書き エクスポートファイル
2.エクスポートしたcsvファイルに対して、条件指定してインポートファイルを生成
3.アプリにインポートファイルを取込
>cli-kintone.exe --import -a アプリID -t APIトークン -e インポートするファイルのエンコード方式 -f 取り込むインポートファイル
となります
このようにバックアップ以外でも様々なことが出来るので、現在はこちらを利用しています
■終わりに
個人の見解ですが、
手間をかけたくない かつ 管理者のみバックアップを取る場合は以下がおすすめです
リリース毎にアプリやレコードを管理したい場合は gusuku Deploit
レコードのバックアップだけでいい場合は kBackUP
有料アドオンの導入が難しい場合は API+スケジューラによるレコードのファイル書き出し
手間をかけてよい かつ 誰でもバックアップを取る場合は 標準機能によるレコードのファイル書き出し がおすすめです
こちらの記事が皆様の一助になれば幸いです
NTTテクノクロスアドベンドカレンダー2022 、明日は@kn-tomさんです。お楽しみに!