column
PR

【Dataverse】消えたら困るデータを、毎晩かってにバックアップさせる仕組みを作った話

tantan_tech
記事内に商品プロモーションを含む場合があります

突然ですが、皆さんは自分の大切なデータ、「これ消えたらどうしよう」と思ったことはありませんか?

私はあります。

私は「週次らせん」という自作のアプリで、毎週の目標や振り返りを記録しています。データは Microsoft の Dataverse に貯めています。アプリケーションをCode Apps で開発して使っているからです。

クラウドに保存できるのはいいのですが、一応ローカルにも保存しておきたい。そしてClude Code からデータを参照して、壁打ち相手にもなってほしい。

そこで今回、この Dataverse のデータを毎晩かってに手元とクラウドにバックアップしてくれる仕組みを、Claude Code と一緒に作りました。この記事はその記録です。

この記事を読んでわかること

  • クラウド(Dataverse)にしかないデータを、毎晩自動でローカルに退避する考え方
  • バックアップを「難しくしない」ための、ちょっとしたコツ3つ
  • 「開発するパソコン」と「ずっと動かしっぱなしのパソコン」の役割分担のしかた

そもそもバックアップって、何をどうすればいいの?

正直に告白します。最初、私は「バックアップ = とりあえずデータをコピーしておくこと」くらいのフワッとした理解しかありませんでした。

でも Claude Code と話しながら整理していくと、やることは意外とシンプルで、要するにこの3つでした。

  1. Dataverse から中身を読み出して
  2. 自分のパソコンの中にファイルとして保存して
  3. ついでにGoogle Drive にも置いておく(クラウドが2箇所になって安心)

これを毎晩、私が寝ている間に自動でやってくれれば、最悪 Dataverse が消えても手元に写しが残る。そういう「保険」です。

言葉にすると簡単ですが、実際に作ると「あれ、これどうするんだ?」というポイントがいくつも出てきました。その中で「これは他の人にも役立つな」と思った工夫を3つ紹介します。

作ったものの全体像

先に完成形の絵を出しておきます。こんな感じです。

やっていることは「倉庫から中身を持ってきて、手元とクラウドの2箇所に写しを置く」だけ。魔法はありません。ここからは、この中に隠れている3つの工夫を順番に見ていきます。

工夫①:写しは「今の状態」と「毎日の写真」の2枚撮る

最初、私は素朴に「データを1個コピーすればいいでしょ」と思っていました。でもここに落とし穴がありました。

週次らせんの「今週」のデータは、月曜に目標を書いて、水曜に途中経過を足して、日曜に振り返りを書く、という感じで1週間かけて同じ場所を上書きしながら育てていくんですね。

つまり、単純に「今のコピー」を1個だけ取ると、「月曜の時点で何を書いていたか」が永遠に分からなくなる。上書きされて消えているからです。

そこで、写しを2種類撮ることにしました。

  • ① 今の状態SQLite というデータベースファイル1個。毎回まるごと最新に置き換え)
  • ② 毎日の写真2026-07-05.json のように、日付をつけて毎日1枚ずつ貯めていく)

②のおかげで、後から「あー、水曜まで手つかずだったな…」みたいな自分の1週間の変化が見えるようになりました。これが日曜の振り返りのときに地味に効きます。

上書きされていくデータは、「今のコピー」だけだと歴史が死ぬ。日付つきの写真も撮っておくと、後から効いてくる。

これ、Dataverse に限らず、日記アプリでも家計簿でも、「同じ欄を更新していくタイプの記録」全般に言える教訓だと思います。

工夫②:Google Drive は「置くだけ」でいい

2つ目。クラウド(Google Drive)にバックアップを送る部分です。

最初、私は身構えました。「Google Drive にアップロードするってことは、Google の API を叩いて、認証して、トークン管理して…うわ、面倒くさそう」と。(正直この時点で少しやる気が下がりました)

ところが Claude Code に相談したら、拍子抜けする答えが返ってきました。

「パソコンの中の Google Drive フォルダにファイルを置くだけでいいですよ」

そう、Google Drive のデスクトップアプリを入れていると、パソコンの中に「マイドライブ」というフォルダができますよね。あそこにファイルをコピーして置くだけで、あとは Google が勝手にクラウドへ同期してくれるんです。

① 私のプログラムがやること      ② Google Drive がやること
  ローカルの                    そのフォルダを見張って、
  マイドライブ/フォルダに   ──→   変わったら勝手にクラウドへ
  ファイルを置く                 アップロードしてくれる

つまり私が書くコードは「ローカルのフォルダに保存する」ところで終わり。認証もAPIキーもリトライ処理も、全部 Google 側にお任せ。これは楽でした。

クラウドへのバックアップは、同期フォルダに置くだけで済むことが多い。Dropbox でも OneDrive でも iCloud でも同じ発想が使えます。

「難しそうなことを、そもそもやらなくて済む方法を探す」。これ、市民開発でめちゃくちゃ大事な発想だなと改めて思いました。

工夫③:「開発するパソコン」と「留守番するパソコン」を分ける

最後、これが今回いちばん頭を使ったところです。(Claude が)

「毎晩自動で動かす」ということは、私が寝ている間もずっと動いてくれるパソコンが要ります。私は Mac mini を1台、常時稼働の「留守番係」にしているので、こいつに任せることにしました。

ここで問題。普段プログラムを書いているのは別のパソコン(MacBook)なんです。書いたものを、どうやって Mac mini に届けるか。

最初は「ファイルを手でコピーして Mac mini に入れる」と考えていたのですが、それだと「今、Mac mini にどのバージョンが入ってるんだっけ?」がすぐ分からなくなる。ズレていく未来が見えました。

そこで採用したのが、git(ギット)で1本化するという方法です。プログラマーがよく使う「変更履歴を管理する仕組み」ですね。

  • MacBook で書く → git に登録して送る(push)
  • Mac mini で git から受け取る(pull)
  • これで両方がいつでも同じ状態になる

「今 Mac mini で何が動いてる?」は、Mac mini で履歴を1行見れば分かる。確認する仕組みを、わざわざ別に作らなくていいわけです。

ただし、これには1個だけ怖い落とし穴がある

正直に書きます。この「1本化」には危険が1つあります。

私が MacBook で作業しかけの、壊れたプログラムをうっかり送ってしまったら → その夜、Mac mini が壊れたプログラムを動かしてしまう。

これは怖い。そこで、境界線を1本引きました。

Mac mini が自動で動かしていいのは、「完成した道具」だけを置く専用フォルダの中身だけ。作りかけのものは絶対に自動実行させない。

私のリポジトリでは、育って安定したツールは studio というフォルダに「昇格」させる運用にしています。この昇格が、そのまま「Mac mini で動かしていいですよ」の許可証になる、という位置づけにしました。作りかけのものは別のフォルダに置いておくので、間違って夜中に動くことはありません。

さらにもう1つ、シンプルなルールを足しました。

「Mac mini は受け取るだけ(pull だけ)。こっちから送る(push)ことはしない」

Mac mini の仕事は「プログラムを受け取って、データを読んで、バックアップを置く」だけ。そもそも何かを送り返す必要がないんです。だから「Mac mini がおかしなものを送ってきて、こっちのパソコンまで壊れる」という事故が、仕組みとして起こりえない状態にできました。

これで安心して夜、Mac mini に任せられます。

で、実際どうなったか

セットアップを終えて、Mac mini で試しに1回動かしてみました。結果はこれ。

  • ゴール 13件・週の記録 6週分を、無事にすべて取得
  • 手元の SQLite・日付つき JSON・Google Drive の3箇所すべてにコピー成功
  • しかも私は何も操作していない(認証も自動で通った)

そして今、毎晩23時30分に、私が寝ている間にこの一連が自動で走るようになっています。翌朝フォルダを見て、その日の日付のファイルが増えていれば「昨日の夜もちゃんと働いてくれたな」と分かる。

大げさに聞こえるかもしれませんが、「消えたら泣くデータ」が、気づいたら3箇所に増えているという状態は、思った以上に心が軽くなりました。保険って、こういう安心感なんですね。

まとめ

今回やったことを振り返ると、大事だったのは技術そのものより考え方でした。

  • 写しは「今の状態」と「毎日の記録」を2枚撮る(上書きされるデータは歴史が消えるから)
  • クラウド保存は「同期フォルダに置くだけ」で済ませる(難しいことはそもそもやらない)
  • 開発するパソコンと留守番パソコンを git で1本化しつつ、「完成品だけ自動実行」の境界を引く

どれも「非IT の私」でも、Claude Code と壁打ちしながら1日で形にできました。自分のデータを自分で守るって、やってみると意外と手が届くところにあります。

実は私、この行動記録とは別に、もう1つ Dataverse に「毎日の行動ログ」を4,600件ほど貯めているんです。こっちのほうが正直よっぽど貴重で、消えたら悲しい。次はこいつも同じ方式でバックアップする予定です。

逸般の誤家庭の皆さん、ぜひ「消える前の保険」、考えてみてはいかがでしょうか。(なお、仕組みはまだ完全に理解できていません。やればやるほど、勉強リストが増えていく・・!)

ABOUT ME
tantan_tech
tantan_tech
淡々と改善している人
建設会社にて、現場の施工管理からDX推進、データ利活用や機械学習を経て、現在は社内の市民開発(Power Platform)を推進しています。
記事URLをコピーしました