AIに任せてたらバックアップ忘れて全部飛んだ話
やらかした。
AI(CLAUDE)に実装任せてたんだけど、 バックアップ取ってなくて、普通に作業が吹っ飛んだ。
しかも最悪なのが、 「途中まで正しく修正してた状態」も全部消えたこと。
何が起きたか
途中でだんだん混乱してきて、 「一旦やり直そう」って判断した。
で、AIが結構前のバックアップに戻した。
👉 ここで終了
その後にやってた正しい修正まで全部消えた。
問題の本質
コードはいい。
Gitでこまめに管理してるから、履歴も追える。すぐに途中の変更分は復旧した。
問題はデータ。
DBを直接いじらせてたから、 「何をどう変えたのか」が完全に不明。
これ、地味に詰む。
なぜバックアップ運用にしなかったか
もちろん、 「DBをGITと同期して毎回バックアップ取ればいいじゃん」という話はある。
でもやらなかった理由はこれ。
- AI実装ではGITコミット数が増えがち(トライアンドエラーが多いため)
- コミット毎にバックアップしてたら逆に履歴が追えない
- どのバックアップが正しいか分からなくなる
- ディスクを無駄に消費する
あと、そもそもだがバックアップは「状態」は残るけど「経緯」は残らない
ここが本質的に弱い。
気づいたこと
AIに任せると、
- 作業スピードは上がる
- でも状態管理は雑になる
人間なら「やばそう」と思うところを、 AIは恐怖心なく行う。
しかも今回みたいに、
👉 途中で正しかった変更を自分で消す
みたいなことが普通に起きる。
対策
結論これ。
DB変更は全部SQLで管理する
- DB直接変更は禁止(実際にはtmpなどに操作SQL自体は作られるが揮発してしまう)
- 変更は明示的にSQLスクリプトで書く
- Gitにコミットする
なぜこれで解決するか
- いつでも再現できる
- どこで壊れたかわかる
- 差分も見える
- AIにもルールとして渡せる
つまり、
👉 「状態」じゃなくて「手順」を管理する
今回やったこと
CLAUDE.md にルールを書いた。
- DB変更は必ずSQLスクリプトで出力すること
- 直接変更は禁止
- SQLスクリプトはGitにコミットすること
AIにもルールを守らせる。
まとめ
AIは優秀だけど、
👉 「履歴管理」はしてくれない
ここをミスると、普通に時間が溶ける。
今回の学びはこれ。
👉 データ変更は必ずコード化しろ