Ldesign Media
Back to Blog
Development

Moodle™ Migration Guide

Luuk Verhoeven

Luuk Verhoeven

Lead Developer & Moodle™ Expert

July 30, 2026
11 min read
Moodle™ Migration Guide

Two Very Different Projects Called " Migration"

When an organization talks about a migration, they mean one of two things. Either they are moving to from another learning platform (aNewSpring, Studytube, Totara, Canvas, or a homegrown ), or they are moving an existing installation forward, from a legacy 2.x or 3.x version to a current 5.x release. Both are migrations. Both fail in predictable ways when they are treated as an IT checkbox instead of a planned project.

At Ldesign Media we have been executing both scenarios since 2010: migrations for organizations replacing commercial platforms, and upgrades for environments that have been running since the 1.8 and 2.x era. We support every version from 2.0 up to the latest 5.2, which means no environment is too old to bring forward safely. This guide walks through both scenarios and the step-by-step plan that makes them succeed.

Scenario A: Migrating to From Another

Switching learning platforms ("lms overstappen") is primarily a data project, not a software installation. itself can be set up in a day. The work is getting your users, courses, content, and history across without loss.

What can and cannot be migrated

  • User accounts. Names, email addresses, and organizational structure (departments, cohorts) migrate well via CSV or direct database mapping. Passwords usually cannot: most platforms store hashes that cannot verify, so plan a password reset flow or switch to at the same time.
  • Course content. packages are portable by design and import into 's activity directly. Native content (pages, quizzes, assignments built inside the old platform) is not portable; it must be rebuilt or converted. Budget time for this: it is consistently the most underestimated part of an migration.
  • Completion history and certificates. For compliance training, completion records often carry legal weight. Export them from the source platform, map them to 's completion and grade structures, or archive them in a reporting layer if live import is not meaningful.
  • SSO and integrations. A platform switch is the ideal moment to move authentication to your central identity provider (Entra ID/Azure AD, SAML, OAuth2) and to reconnect HR sync, so user provisioning is automatic from day one.

If you are specifically evaluating the move away from aNewSpring, our comparison of aNewSpring and Moodle covers the functional and licensing differences in detail, and what a migration trajectory looks like.

Practical advice for the switch

Run both platforms in parallel for one enrollment period where possible. Migrate one pilot group first, validate their experience and their completion data, and only then move the full organization. And freeze content changes on the old platform from the moment the data export is taken, or you will be migrating the same courses twice.

Scenario B: Upgrading a Legacy Installation

The second scenario is an existing that has fallen behind. We regularly encounter 2.7, 3.1, or 3.5 in production: versions that stopped receiving security patches years ago. Upgrading ("moodle upgraden") from these versions to 5.x is very doable, but it is not a single button press.

Why legacy upgrades require planning

  • Stepwise upgrades. does not support jumping from 2.x directly to 5.x in one step. Depending on the starting version, the upgrade path goes through intermediate releases, each with its own database migrations. A 2.7 site, for example, typically upgrades via 3.x milestones before reaching current versions.
  • Plugin compatibility. Every installed must be checked against the target version. Community may have been abandoned; custom may use APIs that no longer exist. This audit decides the real timeline of the project.
  • Theme rebuild. Themes from the 2.x and early 3.x era do not survive into modern , which moved to Bootstrap-based theming. A legacy upgrade almost always includes a theme rebuild or a move to a maintained theme with your branding applied.
  • PHP and database versions. Each version requires a matching PHP version. Moving from 2.x to 5.x usually means the server stack itself (PHP 5.x or 7.x to PHP 8.2+) must be upgraded in step with .

Organizations sometimes ask whether they should instead reinstall from scratch and migrate content into a clean site. For heavily customized legacy installs, that can genuinely be the better route. The audit phase answers this question with facts instead of gut feeling.

The Migration Plan, Step by Step

Whether you are switching platforms or upgrading , the shape of a successful project is the same.

Step 1: Inventory and audit

Catalog everything before touching anything: or platform version, installed and their purpose, custom code, integrations (, HR systems, payment providers), content volume, user counts, and the reports the organization depends on. For legacy upgrades, this audit determines the upgrade path and flags blocking . For switches, it determines what is migrated, rebuilt, or retired.

Step 2: Data mapping

Define where each data category lands in the new environment: users to accounts and cohorts, courses to courses and categories, completions to completion records or an archive. Write the mapping down and have the business owner sign off on it. Discovering mid-migration that the completion history mapping is wrong is expensive; discovering it in a mapping document is free.

Step 3: Test migration on a copy

Never rehearse on production. Take a full copy of the source environment, run the complete migration or upgrade on a staging server, and measure it: how long does it take, what breaks, what data does not survive. For legacy upgrades this also means running the compatibility check and the actual upgrade scripts, not just reading the release notes.

Step 4: Validation with real users

Let course owners and a group of end users validate the migrated environment. Check course content, gradebooks, completion records, certificates, and reports against the source. Validation by the people who own the data catches the edge cases that technical checks miss, like gradebook aggregation settings that produce different totals than the old system.

Step 5: Plan the cutover and downtime

Schedule the production migration in a low-usage window, communicate downtime in advance, take a final fresh backup or export, and freeze content changes. A well-rehearsed migration typically means hours of downtime, not days, because every step has already been executed on staging.

Step 6: Go live, verify, and keep a fallback

After cutover, verify the critical flows immediately: login and , course access, a quiz attempt, a completion registration, cron execution. Keep the old environment available read-only for a defined period. You will rarely need it, but the one time you do, it is priceless.

Our free Moodle upgrade checklist structures these steps for a legacy upgrade specifically: download it if you are preparing a 3.x or 4.x to 5.x upgrade.

Common Pitfalls We See in Practice

After fifteen years of migrations, the failure modes repeat themselves:

  • Corrupt or incomplete backups. The source backup fails to restore and the project stalls on day one. Test every backup by actually restoring it before the migration starts.
  • Custom plugins blocking the upgrade. An organization depends on a custom built for 2.5, and nobody knows who wrote it. The must be updated, replaced, or retired before the upgrade can proceed. As a team that has delivered 300+ custom , updating or rebuilding abandoned custom is a large share of our migration work.
  • Gradebook and completion edge cases. Grade histories, manual grade overrides, and completion states set by now-removed behave unexpectedly after migration. These need explicit validation, not assumptions.
  • Underestimated content rebuild. Native content from the old cannot be converted automatically. Teams that discover this halfway through have already spent their budget on the technical migration.
  • No fallback plan. The old environment is decommissioned the day after go-live, and two weeks later someone needs a completion record that only exists there.

When to Bring in a Migration Specialist

Small, standard environments migrate fine with an experienced in-house admin. Bring in a migration specialist when any of these apply: the environment is heavily customized, completion history has compliance value, multiple integrations (, HR, e-commerce) are involved, the version gap spans several major releases, or the platform simply cannot afford a failed first attempt. The cost of specialist help is predictable; the cost of a botched migration during enrollment week is not.

Planning an switch or a legacy upgrade? Read more about our Moodle upgrade and migration services, download the upgrade checklist, or contact us to discuss your environment. We migrate and upgrade every version from 2.0 to 5.2.

Luuk Verhoeven

Written by

Luuk Verhoeven

Lead Developer & Moodle™ Expert at Ldesign Media

Software engineer and architect specializing in Moodle™ plugin development, system integrations, and scalable LMS platforms. Building custom solutions since 2010.

Free: the Moodle™ Upgrade Checklist

The 26-step checklist we use for client upgrades: from security and end-of-life check to staging tests, go-live, and aftercare.

  • Avoid the most common upgrade pitfalls
  • Covers plugins, integrations, and rollback
  • Practical tips from 16+ years of Moodle™ work

We email you the checklist link and nothing else. No newsletter, no spam.

Rating
5.0

Based on 20 Google reviews

Karin Groen

Karin Groen

2025

"From De Schoolschrijver, I really enjoy working with LDesign. The result was a beautiful piece of custom work in our Moodle environment. Vincent is incredibly meticulous, thinks along very actively, and communication is very pleasant. Highly recommended!"

Arnout Vree

Arnout Vree

2023

"Working with Ldesign is always a pleasure. Clear agreements, short lines of communication, and the quality of the Moodle plugins is good."

Gemma Lesterhuis

Gemma Lesterhuis

2023

"LT&C has had a pleasant collaboration with Ldesign Media for years for developing and maintaining Moodle LMS plugins. We are very happy with their expertise and professional knowledge."

Joris Even

Joris Even

2023

"From JE Ontwikkeling, we have been working with Ldesign for several years now. The service is excellent and the collaboration very pleasant. The quality of the programming work is high, and through co-creation we have achieved wonderful products. Thanks!"

Frans Levels

Frans Levels

2020

"Perfect work for our website."

Lilian Suijkerbuijk

Lilian Suijkerbuijk

2020

"Very satisfied with our website and the quick actions for questions or changes to be made!"

Paul Storms

Paul Storms

2019

"Good modification to a Moodle plugin. Clear agreements."

Merlijn Vanhecke

Merlijn Vanhecke

2019

"Nice service, good knowhow."

L. Ottink

L. Ottink

2019

"Ldesign manages the maintenance and optimization of our Moodle environment. I am very satisfied with the collaboration with Luuk. He thinks along with us and offers suitable solutions. Through his quick response time and flexibility, he ensures that we are fully taken care of in this area."

L. Arendsen

L. Arendsen

2019

"Ldesign is a very pleasant company to work with: proactive, fast, excellent results, and clear agreements. Many years of good work delivered for our website."

Sanne van Hoof

Sanne van Hoof

2019

"Very satisfied: always quick response, quick results, and great that they think along about improvements!"

Dexo Media

Dexo Media

2019

"Great service, very customer-friendly. Very pleasant to work with."

Guus Mul

Guus Mul

2018

"Luuk is our technical support and backbone. Very knowledgeable and quick in solving all Moodle-related problems. Highly recommended!!"

Bas H.

Bas H.

2018

"A very professional, capable, and driven developer. Can think along and develop at all levels."

Academie Tandartsenpraktijk

Academie Tandartsenpraktijk

2018

"Fast, accurate, proactive, up to date with the latest trends, highly recommended. In other words, a true professional."

Dental Lect

Dental Lect

2018

"Ldesign is a skilled and extremely professional company. Response times are short and they have never delivered a product we were disappointed with!"

Josien Drijfhout

Josien Drijfhout

2017

"Friendly and honest advice. Additionally, keeps to agreements and delivers quality in consultation with the client."

Richard Den Haag

Richard Den Haag

2017

"Luuk is a craftsman like I have never met before. A wonderfully proactive person. I highly recommend Luuk for anything code-related."

Unhooked Kite

Unhooked Kite

2017

"Good collaboration, and provides good support!"

Familie Vrolijk

Familie Vrolijk

2017

"Ldesign is a loyal partner for our business website. Accurate, proactive, and helpful. Top company!"

How can we help?

Whether you need a new learning environment, an improvement or strategic advice: we are ready. No sales pitch, just a clear conversation with people who speak your language and do the work themselves.

Office

Vissershavenweg 65 - III
2583 DL The Hague

Serving the Netherlands and Flanders

Opening Hours

Mon - Fri: 9:00 - 17:00

Response Time

Typically within 24 hours

Direct Access to Developers

One fixed point of contact who speaks your language and personally builds your solution. No handovers.

Send us a brief

By submitting you agree to our privacy policy.

We reply within 24 hours on business days.

5.0 Google rating · 16+ years of experience · 300+ Moodle™ plugins