High-Risk Moodle Upgrade Playbook — Zero Data Loss SLA

Moodle 3.5 → 5.x Upgrade Path: Multi-Hop Risk Controls

Moodle 3.5 is long end-of-life. You cannot jump directly from 3.5 to 5.2 without breaking database schemas, gradebooks, and PHP 8.2+ runtime dependencies. Here is our exact technical runbook, staging protocol, and data checksum verification method.

Technical Standard

The 4-Step Version Ladder (3.5 → 4.1 → 4.5 → 5.2)

Direct version jumping causes corrupted database tables and fatal PHP crashes. We enforce a strictly audited 4-step migration sequence.

Step 1: Baseline Stabilization Moodle 3.5 → 3.11.18 LTS

Stabilizes legacy PHP 7.2/7.4 database schemas, resolves legacy UTF-8 MB4 charset conversions, and validates `mdl_quiz_slots` and `mdl_grade_items` structure before 4.x.

  • Target PHP: PHP 7.4.33
  • Database Floor: MariaDB 10.2+ / MySQL 5.7+
  • Focus: Legacy Atto editor & `auth_db` audit
Step 2: Architecture Hop Moodle 3.11 → 4.1.12 LTS

Executes the major Moodle 4.x Question Bank DB refactoring (moving from course-level to category/system context question storage) and upgrades PHP stack to 8.1.

  • Target PHP: PHP 8.1.28
  • Database Floor: MariaDB 10.4+ / MySQL 8.0
  • Focus: Question bank context migration & Quiz attempt locks
Step 3: Long Term Release Moodle 4.1 → 4.5 LTS

Upgrades system to Moodle 4.5 LTS, transitions editor from Atto to TinyMCE 6, refactors custom PHP 8.2 code, and deprecates unsupported legacy blocks.

  • Target PHP: PHP 8.2.18 / 8.3
  • Database Floor: MariaDB 10.6+ / PostgreSQL 14+
  • Focus: TinyMCE migration & PHP 8.2 deprecation warnings
Step 4: Modernization Moodle 4.5 → Moodle 5.2 (Latest)

Deploys latest Moodle 5.2 release on hardened Linux VPS / AWS Graviton / GCP Cloud SQL. Ensures full compliance with strict PHP 8.2+ floors and modern Boost theme.

  • Target PHP: PHP 8.2+ / PHP 8.3
  • Database Floor: MariaDB 10.11+ / MySQL 8.0.30+
  • Focus: Full site verification, cron OPcache optimization & SLA cutover
Risk Control Framework

Staging, Backups & Rollback SLA

We never perform major version upgrades directly on production servers. Our staging-first protocol guarantees zero student downtime and zero risk.

1. Isolated Staging Clone

We clone your complete production database, `moodledata` filedir, and custom code onto a private staging server. You receive a private URL to test courses, grades, and quizzes before live cutover.

2. Triple-Lock Backups

Before cutover, we create complete compressed backups: SQL database dump + full `moodledata` directory + PHP code directory. Backups are stored in encrypted off-site cloud storage.

3. Tested Rollback SLA

Every upgrade runbook includes a pre-tested rollback procedure. RTO (Recovery Time Objective) target: < 2 hours. RPO (Recovery Point Objective) target: 0 data loss.

Data Integrity & Checksum Verification Protocol

To ensure zero student grade loss, quiz attempt corruption, or missing course completions, we run automated SQL row-count & hash checksum comparison scripts before and after each hop:

Moodle Core Table Target Verification Point Verification Method Acceptance Criteria
mdl_grade_grades Student Final & Raw Grades MD5 Checksum of `finalgrade` + row count 100% Exact Match
mdl_quiz_attempts Finished & In-Progress Quiz Attempts Row count by state + user ID mapping 0 Rows Discarded
mdl_course_completions Historical Course Completion Certificates Timestamp & completion status audit 100% Exact Match
mdl_user_enrolments Active & Suspended Student Roles Role assignment context audit 100% Role Retention
Plugin Strategy

Plugin Compatibility Audit & Remediation Matrix

In a 3.5 → 5.x upgrade, many third-party plugins are end-of-life or lack PHP 8.2 support. We audit every plugin before touch and provide clear action paths.

Plugin Category Typical 3.5 Setup Moodle 5.2 Status LMSOps Remediation Action
Text Editors Atto HTML Editor Deprecated / Removed Migrate content filters & buttons to TinyMCE 6 core
Auth Plugins Legacy `auth_db` / MNet Requires Refactoring Refactor to modern OAuth2, SAML2, or modern Auth API
Activity Modules Old Attendance / Certificate / H5P Upgrade Available Upgrade to official Moodle 5.2 compatible versions / Core H5P
Site Themes Legacy Essential / More / Adaptable Incompatible Rebuild on modern Boost / Moove / Edwiser PHP 8.2 architecture
Custom Local Code Bespoke local/ block plugins PHP 8.2 Warnings Refactor PHP 8.2 dynamic property & function signature deprecations

Ready to Upgrade Your Moodle Site Safely?

Send us your current Moodle version, plugin list, and server environment. You'll receive a written version ladder, risk assessment, and transparent fixed quote within 1 business day.

Request Written Upgrade Proposal View All USD Rates