Limitless Budget
← Back to Documentation

Database Schema

Understanding the database structure of Limitless Budget.

Database Architecture

Limitless Budget uses a dual-database architecture:

  • Master Database (master.db) - Stores user accounts, authentication, and budget metadata
  • User Databases (user_{userId}.db) - One per user, stores budgets, transactions, accounts, and categories

Master Database Schema

User

Stores user account information:

  • id, email, passwordHash, displayName
  • avatarUrl, theme, defaultCurrency
  • defaultBudgetId, sidebarCollapsed
  • hideAllAccounts, hideReports

BudgetMetadata

Tracks budget ownership and access:

  • id, budgetId (in user database), name, currency
  • ownerId, databasePath
  • Relations to BudgetAccess for sharing

BudgetAccess

Manages budget sharing permissions:

  • userId, budgetMetadataId, permissions (admin/editor/viewer)

User Database Schema

Budget

Main budget entity:

  • id, name, currency, dateFormat
  • userId (creator), createdAt, updatedAt

Account

Financial accounts:

  • id, budgetId, name, type (checking/savings/credit/cash/tracking)
  • onBudget (boolean), currency, balance
  • closed (boolean), sortOrder

CategoryGroup

Groups for organizing categories:

  • id, budgetId, name, sortOrder

Category

Budget categories:

  • id, groupId, budgetId, name
  • monthlyBudget, monthlyAvailable, sortOrder
  • isIncome (boolean), hidden (boolean)
  • goalAmount, goalFrequency

Transaction

Financial transactions:

  • id, budgetId, accountId, categoryId
  • date, payee, amount, memo
  • cleared (boolean), reconciled (boolean)

Payee

Transaction payees:

  • id, budgetId, name
  • defaultCategoryId, includeInList (boolean)

Database Files

Database files are stored in the DATA_PATH directory:

  • master.db - Master database
  • user_{userId}.db - One per user

Backing Up

To backup your data, copy the database files:

# Backup all databases cp -r /path/to/data /path/to/backup/