Migration from Native to Tutor (Lilac)

Hello folks! How are you?

I’m working on a migration, the first step is to migrate from Native to Tutor and the second step is to migrate from Lilac to Olive (already using Tutor).

My question is:
Should I use Tutor 12.2.0 (last version with Lilac) or use Tutor 14.0.5 and change the value of OPENEDX_COMMON_VERSION from open-release/nutmeg.2 to open-release/lilac.2?

I believe I should use 12.2.0 because we have changes in the OpenedX architecture/components between Lilac and Maple/Olive. So, if I use Tutor 14.0.5, it will try to install OpenedX Lilac using the Olive docker-compose and it won’t work.

Does anyone have any other observations/notes about this process?


I would like to add that you will need to create plugins for the config changes to the native lms.env.json and cms.env.json.
You will need to create v0 .yaml plugins on 12.2.0 and then upgrade to v1 .py plugins with Maple 13.*.


Thank you @uetuluk!

Have you already migrated an OpenedX database?
Technically, Will the Django migrations do the work?

Eg.: Lilac → Maple or Lilac → Nutmeg

We did not do a native to Tutor database migration, so I cannot help you with that.

However, you can check the posts by sambapete. He has several topics about database migrations from Native to Tutor.


Actually, there are many considerations. Please refer to the logic in this Cookiecutter migration tool for migrating to a tutor-based platform from any native build (Lilac or older).

Data sets that this tools handles:

  • storage data in aws s3 bucket(s)
  • mysql data
  • mongo data

Things that this tool does:

  1. provides technical how-to regarding the best way to backup your existing data from your native build
  2. initializing tutor correctly in your local environment, so that it actually does what you need it to do
  3. importing your mysql and mongo data to tutor, which is a lot more technically arcane that might seem
  4. outlining the exact sequence of tutor versions that you’ll need to run, along with each set of tutor commands, in order to get from your current open edx version to one that tutor can take care of automatically (ie Nutmeg or later)
  5. if necessary, how to move your upgraded mysql and mongo data from the local tutor installation to their final respective remote server hosts. this is also pretty arcane
  6. how to validate that your databases were correctly upgraded
  7. things that you need to do in open edx afterwards in order to ensure that everything runs smoothly
1 Like