Бот використовує SQLite (без залежності від CGO) для зберігання всіх даних. Це робить додаток легким у розгортанні та портативним.
- За замовчуванням база зберігається у файлі
lifeos.dbв корені проекту. - DSN для підключення:
sqlite:lifeos.db?cache=shared&mode=rwc.
Міграції керуються через бібліотеку golang-migrate та виконуються автоматично при старті додатка.
Файли міграцій розташовані у: internal/infrastructure/persistence/sqlite/migrations/.
- Запуск міграцій:
make db-migrate - Скидання бази:
make db-reset(видаляє файл бази та створює нову структуру)
Зберігає профілі користувачів Telegram та їхні налаштування.
id: Внутрішній UUID.telegram_id: ID користувача в Telegram (унікальний).onboarding_status: Поточний крок знайомства з ботом.
Текстові замітки з підтримкою архівування.
is_archived: Флаг для прихованих нотаток.
Задачі з пріоритетами та статусами.
priority: 1 (Low) до 4 (Critical).status: 0 (Backlog), 1 (InProgress), 2 (Done), 3 (Cancelled).
Щоденні звички.
habit_entries: Окрема таблиця для логування кожної відмітки виконання.
Ви можете відкрити файл lifeos.db за допомогою будь-якого SQLite клієнта (напр., DB Browser for SQLite) для ручного аналізу даних.