Skip to content

Database

School ERP uses PostgreSQL as the primary datastore.

Guidance for private deployments

  • Use PostgreSQL 14+
  • Take daily backups (logical + WAL as appropriate)
  • Do not modify schema manually — use official migrations
  • Prefer read replicas for heavy reporting workloads

Important domains

Area Example tables / concepts
Students students, admissions, guardians
Attendance attendance_records, month_locks
Fees fee_heads, payments, receipts
Exams exam_schedules, marks

Month-end lock

Attendance lock status is stored with month closing records. Unlocking is an application action, not a raw SQL update.