Open edX Platform Database and Search Technologies

Open edX Platform Database and Search Technologies#

Tags: site operator concept

The Open edX platform uses several databases and search backends, each serving different purposes.

Relational (SQL)#

MySQL

The long-standing primary relational database for most services (LMS, CMS/Studio), storing users, courses, enrollments, and grades.

PostgreSQL

Newly supported as of the Verawood release, with migrations updated to make the Open edX platform compatible across both MySQL and PostgreSQL. Changes include dynamic SQL generation based on the database engine, cross-database field type handling, and custom psycopg2 adapter registration for Open edX’s OpaqueKey types like CourseLocator. A community-developed Tutor plugin (tutor-contrib-postgresql) supports PostgreSQL-based Tutor deployments. See Use PostgreSQL as the Relational Database Backend.

SQLite

Used in local development and testing environments.

NoSQL / Document#

MongoDB

Used to store course content structure in Studio. There is ongoing work to migrate away from MongoDB toward MySQL via the Learning Core (openedx-learning) initiative.

Caching / In-Memory#

Redis

Used for caching, session storage, and Celery task queuing. Superseded Memcached in modern deployments.

Memcached

Legacy caching layer, largely replaced by Redis.

Message Broker#

Redis (also serves this role) or RabbitMQ

Used as a Celery broker for background task processing.

Maintenance chart

Review Date

Working Group Reviewer

Release

Test situation

2025-04-10

sarina

Verawood

Pass