Migration Tool

The Migration Tool lets you transfer your existing LMS data — courses, lessons, quizzes, enrollments, orders, reviews, and more — directly into Masteriyo. Migration runs entirely in the background using WordPress's Action Scheduler, so large sites with thousands of courses and students can migrate safely without hitting PHP time limits or blocking your WordPress admin.

Requirements

  1. Masteriyo LMS (installed and activated)
  2. Migration Tool add-on activated — go to Masteriyo > Addons and enable it (how to activate addons)
  3. Your source LMS plugin (installed and activated on the same WordPress site)

Setup

Open the migration interface at Masteriyo > Tools > Migration.

migration-tool-lms-cards

The page shows a card for each supported source LMS. Cards for plugins that are not installed or active on your site are grayed out.

Both the source LMS plugin and Masteriyo must be active on the same WordPress site before you begin. No data leaves or enters your site through external servers — everything migrates locally.

How Migration Works

Migration uses Action Scheduler (the same background job library used by WooCommerce) to process data in batches of 100 items at a time. Each migration step — Courses, Enrollments, Orders, etc. — runs as its own background job, so no single PHP process handles the full dataset.

  • If a job hits PHP's memory or time limit, it automatically re-queues itself from the last saved position and continues on the next cron cycle — no data is lost and no items are duplicated.
  • You can close the migration modal or navigate away at any time. Background jobs continue running and you can check progress by returning to Masteriyo > Tools > Migration.
  • Any required Masteriyo Pro addon (e.g. Assignment, Zoom, Course Bundle) is automatically activated when its corresponding migration step begins [Pro] — no need to activate them manually beforehand.

Starting a Migration

  1. On the Migration page, click the card for your source LMS to select it.

  2. Click Migrate. A confirmation dialog appears.

    migration-confirm-dialog

  3. Type confirm (lowercase, exact match) in the input field to enable the Confirm & Start button. This prevents accidental migrations.

  4. Click Confirm & Start. The migration modal opens and processing begins immediately in the background.

    migration-modal-running

The modal shows each migration step with its own progress indicator, item count, and status. An overall progress percentage is shown at the top. Steps with zero items on your site are skipped automatically.

Monitoring Progress

You can close the migration modal at any time — background jobs keep running. A banner appears at the top of the Migration page showing the current percentage and a View Progress button to reopen the modal.

migration-in-progress-banner

If your browser tab is closed or the page is refreshed mid-migration, the banner reappears the next time you visit Masteriyo > Tools > Migration, letting you pick up exactly where you left off.

To stop a running migration, click Cancel inside the migration modal. Cancellation takes effect between batches, so it may take a moment to stop.

Reviewing Migration Logs

The Logs link and log file are only available when the Masteriyo logger is enabled. To enable it, go to Masteriyo > Settings > Advanced > Debug and turn on Enable Logger.

When the logger is enabled, every migration step is recorded in the migration-tool log. The log captures:

  • Step started — how many items were found for that step.
  • Item failures — the item ID and exact error message for any item that failed to migrate. Failed items are skipped on resume so they do not block the rest of the migration.
  • Step completed — how many items succeeded and how many failed.
  • Skipped steps — steps with no source data.
  • Auto-activated addons — which Pro addons were activated automatically.
  • Re-queued jobs — if a background job timed out and was automatically restarted.

A Logs link appears inside the migration modal and in completion notices only when the logger is enabled and the log file exists. Clicking it takes you straight to that log.

migration-logs-link

To browse logs manually, go to Masteriyo > Tools > Logs and open the file named migration-tool.

migration-tool-log-viewer

Supported Platforms

Certificate auto-assignment: If a course in the source LMS had a certificate template, a default Masteriyo certificate template is automatically assigned during migration. Applies to Tutor LMS, MasterStudy, LifterLMS, and LearnDash. Customize assigned templates at Masteriyo > Certificates after migration.

Source LMSFree itemsAdditional items with Masteriyo Pro
LearnPressCourses, Users, Enrollments, Orders, Reviews, Quiz Results, Course Progress
Tutor LMSCourses, Users, Enrollments, Orders, Reviews, Q&A, Announcements, Course Progress, Quiz Attempts, Wishlists, Google Meet (requires Tutor LMS Pro)Assignment Submissions, Course Bundles, Zoom, Gradebook (require Tutor LMS Pro)
MasterStudyCourses, Users, Enrollments, Orders, Reviews, Course Progress, Quiz Attempts, WishlistsAssignments, Assignment Submissions, Zoom, Course Bundles (require MasterStudy LMS Pro)
LifterLMSCourses, Users, Enrollments, Orders, Reviews, Course Progress, Quiz Attempts
LearnDashCourses, Users, Enrollments, Orders, Course Progress, Quiz Attempts, Assignments [Pro]

Migrate from LearnPress

StepWhat is migrated
UsersInstructor user accounts
CoursesCourses with all sections, lessons, and quizzes
EnrollmentsStudent course enrollments with status
OrdersPurchase orders with correct status mapping
ReviewsCourse reviews and ratings
Quiz ResultsQuiz result records per student
Course ProgressPer-student lesson completion records

Migrate from Tutor LMS

Free:

StepWhat is migrated
UsersInstructor user accounts
CoursesCourses with lessons, quizzes, and expanded question types (ordering, image matching, gap match)
EnrollmentsStudent course enrollments
OrdersPurchase orders
ReviewsCourse reviews and ratings
Questions & AnswersQ&A posts and replies
AnnouncementsCourse announcements
Course ProgressPer-student lesson and quiz progress
Quiz AttemptsDetailed quiz attempt records
WishlistsStudent wishlists
Google Meet (requires Tutor LMS Pro)Google Meet virtual classroom sessions

Pro [Pro] (requires Masteriyo Pro + Tutor LMS Pro):

StepWhat is migratedMasteriyo Addon Auto-Activated
Assignment SubmissionsStudent assignment submission recordsAssignment
Course BundlesCourse bundle products with included coursesCourse Bundle
ZoomZoom virtual classroom sessionsZoom
GradebookStudent gradebook recordsGradebook

Migrate from MasterStudy

Free:

StepWhat is migrated
UsersInstructor user accounts
CoursesCourses with all lessons and quizzes, including all statuses and accurate timestamps
EnrollmentsStudent course enrollments
OrdersPurchase orders
ReviewsCourse reviews and ratings
Course ProgressPer-student lesson completion records
Quiz AttemptsDetailed quiz attempt records
WishlistsStudent course wishlists

Pro [Pro] (requires Masteriyo Pro + MasterStudy LMS Pro):

StepWhat is migratedMasteriyo Addon Auto-Activated
AssignmentsAssignment postsAssignment
Assignment SubmissionsStudent assignment submission recordsAssignment
ZoomZoom virtual classroom sessionsZoom
Course BundlesCourse bundle products with included coursesCourse Bundle

Migrate from LifterLMS

StepWhat is migrated
UsersInstructor user accounts
CoursesCourses with all lessons and quizzes
EnrollmentsStudent course enrollments with accurate status mapping
OrdersPurchase orders with correct status mapping
ReviewsCourse reviews and ratings
Course ProgressPer-student lesson and quiz progress
Quiz AttemptsDetailed quiz attempt records

Migrate from LearnDash

StepWhat is migrated
UsersInstructor user accounts
CoursesCourses with sections, lessons, and quizzes (section ordering preserved)
EnrollmentsStudent course enrollments
OrdersPurchase orders
Course ProgressPer-student lesson completion records
Quiz AttemptsDetailed quiz attempt records
Assignments [Pro]LearnDash assignment posts and student submissions (Assignment addon auto-activated)

After Migration

Once migration completes, the modal shows a success state with the total number of items migrated. A completion notice also appears the next time you visit the Migration page, including a Logs link when a log file exists.

Verify the migrated data in the corresponding sections:

  • Masteriyo > Courses — courses, lessons, and quizzes
  • Masteriyo > Students — enrolled students
  • Masteriyo > Orders — purchase order history
  • Masteriyo > Reviews — course reviews

If fewer items than expected were migrated, go to Masteriyo > Tools > Logs, open the migration-tool log file, and look for failed items — each is listed with its ID and the reason it was skipped.



Was this article helpful to you?
Give us Rating

Last edited on July 23, 2026.
Edit this page