SQLite всегда ассоциировалась с «маленькой, но удобной» базой данных. Один файл — и у вас полноценное хранилище. В 2025-м, с появлением Rails 8 и таких решений как Solid Cable, Solid Cache и Solid Queue, эта простота стала ещё привлекательнее: можно развернуть приложение без отдельного Postgres, Redis и S3. Но вместе с удобством приходит новый класс рисков — неожиданные падения и потери данных. Главное отличие SQLite — всё приложение работает с одним файлом, который лежит рядом с процессом. Это убирает целый класс проблем:
🔌 нет ошибок соединения с базой,
🛠️ не нужны отдельные сервисы,
🚀 деплой получается невероятно лёгким. Но если этот файл хранится на временном диске контейнера (Heroku, Fly.io), он просто исчезает при перезапуске. Решение очевидное — использовать постоянные тома (EBS, Fly Volumes) и настраивать автоматические бэкапы. По умолчанию:
🗂️ ActiveRecord,
🧰 Rails.cache,
📨 ActiveJob — всё лежит в одном SQLite-файле. Это удобно для маленьких проектов, но при росте запрос