SoSoraEndo2025年6月24日2 min173 字
「捨てやすい DB」が開発速度を決める
Ridgepole と seed-fu に切り替えた時、結果的に最も効いたのは「DB を 10 秒で消して戻せる」状態を作ったことでした。
Makefile
db_reset:
docker compose exec backend bundle exec rails db:drop db:create
docker compose exec backend bundle exec ridgepole -c config/database.yml -E development -f db/schemas/Schemafile --apply
docker compose exec backend bundle exec rails db:seed_fu
make db_reset で DROP → CREATE → schema 適用 → seed まで一発。
tmpfs にすると体感が変わる
MySQL の data dir を tmpfs にすると、I/O が消えて 3〜4 秒で seed まで終わります。
services:
db:
image: mysql:8.4
tmpfs:
- /var/lib/mysql
まとめ
「壊れたら復元コストが高い」状態を作らない。捨てやすい DB は、心理的に試行回数を増やしてくれます。