自作アプリのDBが全消失した話|Google SheetsからFirebaseへ移行検討中

「自作アプリDB全消失 Google SheetsからFirebaseへ移行検討中」体験記アイキャッチ

PR

エリア

どうも!エリアです

通所リハで働きながら、AIで職場の業務改善アプリを自作してます

8本目で「介護記録アプリを自作した話」を書いたんやけど、今日はその続編

職場用の自作アプリの運用テスト中に

その日入力したバイタルが全部消えるっていう事故が起きました

幸い本格運用前のテスト段階やったから実害ゼロ=セーフ!

笑い話にしつつ、同じ轍を踏まんよう、体験談ベースでまとめておきます

結論から言うと

結論

自作の介護記録アプリで、Google Sheets に置いてたバイタルデータが消えました

きっかけは 「申し送りノート」のセルが Google Sheets の上限(50,000文字)に達したこと

本格運用前で実害ゼロ=セーフ!

そして今、Firebase への移行を検討中

スプシは表計算ソフトであって、ちゃんとしたアプリのデータ置き場には向かない

これが今回の最大の学びです

この記事でわかること
  • 自作アプリで Google Sheets を使ってたら、データが消えた体験談
  • 「50000文字制限」っていう Google Sheets の落とし穴
  • Firebase と Supabase、ざっくりどっち選ぶ?の話
  • 業務改善で自作してる人へ、同じ轍を踏まないための注意喚起
しょぼんくん

エリアさん、また自作アプリで何かあったんやって?

エリア

あったあった
職場用に作ってる介護記録アプリのテスト中に、その日入力したバイタルが全部消えてん

しょぼんくん

うわぁ…で、現場大丈夫やったん?

エリア

本格運用前のテスト段階やったから実害ゼロ=セーフ!やった
ただ、見積もりの甘さは痛感したわ

目次

自作アプリで何が起きたか|申し送りノートが50000文字に達した日

自作アプリで申し送りノートが50,000文字に達しエラーで当日のバイタルが消失した事故発覚画面

ある日、職場用の自作アプリで運用テストしてました

申し送りノート(その日の出来事を書き溜めるメモ欄)に追記しようとしたら、画面の隅に「50000文字」みたいなエラーが一瞬だけチラッと出ました

しょぼんくん

一瞬だけ?

エリア

ほんま一瞬
「ん?なんか出たな…」くらいの感覚やった

すぐ消えたから、まあええかとアプリを一度閉じて

しばらくして再起動してみたら、その日入力したバイタル(血圧・脈拍・体温)が全部消えてた

しょぼんくん

うわぁ…ヒヤッとするやつ

エリア

ヒヤッとした
でも本格運用前のテスト段階で実害ゼロやったからな
セーフ!やったから、こうやって冷静に振り返れてる

正直、50000文字なんて到達せんかなと思ってたけど

可能性は0じゃないから、6分割して登録するようにしていたけど

エリア

それでも、何かしらのエラーがでました

見積もりの甘さがそのまま事故になった、っていう自分への戒めの記録です

これが本番運用始まってからやったら、職場の現場で大事故になるとこやった

テスト中で気づけたのは、不幸中の幸いやな

しょぼんくん

何もなくて何より

エリア

ほんまにそれ
事故った経験こそ、こうやって記事にして共有できる価値やな

なぜ消えた?|「50000文字」エラーの正体

Google Sheets1セル50,000文字上限エラーの正体、公式仕様・設計問題・規模感の3要因

Google Sheets には 「1セルあたり50,000文字まで」 っていう公式の上限があります

しょぼんくん

セルの中に書ける文字数の上限ってこと?

エリア

そうそう
普通にスプシ使いでは絶対に到達しない数字ですね

ちょっとした小説1冊分くらい入る容量やからな

問題は、僕が申し送りノートを1つのセルに追記し続ける設計にしてたこと

「同じ人の申し送りは1セルにまとめたほうが見やすい」と思ってたんよ

そこに、テスト用に1日30人分のデータを入力してた

累積でじわじわ膨れ上がっていって、ある日突然「50000文字オーバー!」でブロックされた、というわけ

しょぼんくん

で、なんでバイタルまで消えたん?

エリア

そこは正直、まだ完全には究明できてない

何かの拍子に書き込み処理がおかしくなって、その日の入力分を巻き込んだみたい

無理に断定せんとくね

ハッキリ言えるのは「Sheets をアプリのデータ置き場にすると、こういう不可解な消失が起きうる」ってこと

これだけで、移行判断する理由には十分やった

もとの構成|全部 Google + 無料縛りで組んでた

自作アプリのもとの構成図、フロントHTML/CSS/JS・Cloudflare・GAS・Google Spreadsheetの全体像

参考までに、事故った時の構成はこんな感じ

部分使ってたもの/予定
画面HTML + CSS + JS(手書き)
公開先Cloudflare 連携を予定
裏側のデータ処理GAS(Google Apps Script)
データ置き場Google スプレッドシート
ログインGoogle アカウント想定
しょぼんくん

全部 Google で固めてるんや

エリア

そう、無料縛りで組んだらこうなった
プロトタイプには最高の構成や

しょぼんくん

便利そうやん

エリア

便利は便利
お試しで動かす分には十分や

ただ、データを毎日溜めていく用途には荷が重かった、というのが今回の結論

業務改善シリーズの過去記事も置いとくね:

Firebase or Supabase|ざっくりどっち選ぶ?

個人開発DBの移行先比較、FirebaseとSupabaseの判断軸とFirebaseを選んだ理由

移行先の候補は FirebaseSupabase の2つ

しょぼんくん

そもそも Firebase と Supabase って何なん?

エリア

ざっくり言うと、アプリ作りに必要な裏方仕事をまるっと用意してくれるサービスやな

例えば

  • 「ログイン機能」
  • 「データの保存」
  • 「画像のアップロード」

とか、自分で全部作ると大変なやつ

これらをワンセットで提供してくれる、便利屋さんみたいな存在ですね

それぞれの立ち位置はこんな感じ

  • Firebase:Googleが提供してる便利屋さん。世界中の個人開発者が使ってる定番中の定番
  • Supabase:オープンソース版(みんなで改善できるタイプ)の便利屋さん。新しい選択肢として人気上昇中
しょぼんくん

どっちも「裏方まとめサービス」なんやね
で、違いは?

エリア

ざっくり比べるとこんな感じ

項目FirebaseSupabase
出してるとこGoogle製OSS発
無料枠ありあり
ログイン機能標準装備標準装備
ネット切れに強い
個人開発の事例めっちゃ多い増えてきてる
しょぼんくん

エリアさん的にはどっち?

エリア

悩んだ末、いまは Firebase に傾いてるかな

理由は3つ

1. Google アカウントとの相性が良い(既に Google で組んでた)
2. ネット切れに強い(施設内 Wi-Fi が弱い時もある)
3. 個人開発の参考事例が多い(詰まった時に検索しやすい)

ただし、Firebase 持ち上げではない

Supabase もすごく良くて、慣れてる人ならそっちのほうが早い

要は 用途次第

理由は3つ

1. Google アカウントとの相性が良い(既に Google で組んでた)
2. ネット切れに強い(施設内 Wi-Fi が弱い時もある)
3. 個人開発の参考事例が多い(詰まった時に検索しやすい)

ただし、Firebase の持ち上げではない

Supabase もすごく良くて、慣れてる人ならそっちのほうが早い

要は 用途次第 になりますね

エリア

作りながら、Firebase に落とし穴があれば修正していく感じかな
やってみないとわからん部分もあるので

移行の現在地|まだプロトタイプ着手段階

Firebase移行タスクボード、設計フェーズ+プロトタイプ段階の進捗チェックリスト6項目

正直に言うと、まだプロトタイプ着手段階です

進捗としてはこんな感じ

  • ☑ Firebase プロジェクト作成
  • ☑ データの構造を紙で考えてる
  • ☐ ログイン機能の移行
  • ☐ 旧データの引っ越し方針
  • ☐ 画面側の書き換え
しょぼんくん

まだ序盤やん

エリア

まぁ、一から作っているみたいなもんだからね

平日夜+休日の隙間時間でやってるから、数週間くらい掛かるかな

途中経過は X で 「Firebase 試してみる」シリーズ として発信していくつもりです

しょぼんくん

じゃあ Sheets 全否定?

エリア

いや、それは違う

Sheets は 「お試し・検証フェーズ」では本当に強い

無料・即使える・見ながら触れる、この3拍子は他にない

エリア

おかげで、現場に即したいい感じのアプリが出来そうだわ

問題は「いつ移行するか」を決めずに、本格運用に近づいてしまうこと

「動いてるから、まあいいか」で粘ったら、ある朝データが消えます(実体験)

業務改善で自作してる人へ|2つの注意喚起

自作で業務改善してる人への注意喚起2つ、Sheetsを本格DBにしない・累積テキストは行で分ける

最後に、同じく業務改善で自作ツール組んでる人へ、注意喚起を2つ

① Sheets を「ちゃんとしたアプリ」のデータ置き場として使い続けない

プロトタイプ・お試し段階ならOK

でもデータが日々溜まっていく用途は、早めに DB への移行を決めとくべき

「動いてるから」で粘ると、必ずどこかで時限爆弾が爆発します

② 累積する文章を1セルに溜めない

これが今回のメインの教訓

「1人1セルにまとめると見やすい」って気持ちはわかる

でも、行を分けて溜めて、表示の時だけまとめるのが正解

1セルに溜め続けると、50000文字制限という時限爆弾を抱えることになります

しょぼんくん

耳が痛い人、けっこうおるんちゃう?

エリア

過去の自分に言うてる感じやな

まとめ|ちゃんとした道具を使うのが結局一番の近道

自作アプリDB全消失体験の結論「DBはDBに任せる」、Sheetsはプロトタイプの王者・本番は専用DB

長くなったけど、要点はこの3つ

  • Sheets をデータ置き場に使うのはプロトタイプまで
  • 累積する文章を1セルに溜めるのは時限爆弾
  • 業務で本気で運用するなら、最初から Firebase か Supabase

テスト中に気づけてセーフ!やったから、こうやって冷静に振り返れてる

本番運用始まってからやったら、職場でも家でも信用ガタ落ちやった

個人開発でも「ちゃんとした道具を使う」のが、結局は一番の近道や、というのが今回の学びです

しょぼんくん

事故ったけど、結果的に良い見直しになったやん

エリア

うん、本番前に気付けたのは本当にラッキー

引き続き Firebase 移行の進捗は、随時ブログにまとめていきます

自作で業務改善してる人の参考になれば嬉しいです

今日はそんなところ!ノシ

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

はじめましてエリアと申します
ゲーム、アニメ、マンガ大好き、サイクリング大好き
現在はブログを書くことにハマっています!
時は金なりが座右の銘なので
時間短縮できるアイテム、投資であったり、趣味、高知のことを記事にしていきます
パソコンのことが超絶大好きなので、パソコン初心者にも分かりやすく記事を書いています!

目次