Upgrade from Ficus to Lilac

Hello There,

Been successfully running an Open edX installation based on Ficus ever since the Ficus release and not touched it. I am now looking to upgrade it to Latest Lilac.

Would it be fine to install the new Lilac using tutor and migrate all courses, along with user data? I tried exporting courses from Ficus and importing them to Lilac and it works. However User enrollment are not moved. I also tried to sync mysql DB, but it is throwing so many errors.

My Ficus installation is based on native install method - using Ansible. I am finding a better way to upgrade the stack.

I think the only supported way of doing this is to install all intermediate releases, i.e. upgrade Ficus to Ginkgo, to Hawthorn, to Ironwood, to Juniper, to Koa, to Lilac.

This is a long process, filled with complications since you will encounter broken, missing, or incompatible packages. Generally the best thing to do is to upgrade with each release.

Migrating courses will be a lot simpler than user data. If you are OK with just moving across the courses, you can do a fresh Lilac install (as you’ve experimented with) and migrate the courses.

1 Like

Thanks so much for your reply.

Yes, that works as expected. If I am doing a fresh install and exporting/importing courses, it works. But I am looking for a method to move all the enrolments, skiping these version-by-version upgrade.

I see there is a lot of schema changes in ficus vs lilac mysql DB. If I feed the database table in lilac with user enrolment data from ficus mysql DB, will it work? I hope you got the point. It is something like:

  • identify enrolment tables in ficus database
  • look for the same table in lilac database
  • export the table from ficus database
  • import the table in lilac database

I believe all these are stored in mysql and if we match the data from ficus to lilac, it would work. This is just my assumption, please correct me if I am wrong.

Thanks again, for your time.

I think there are a LOT of schema changes, some involving data migrations that you would need to migrate over. This is not a trivial task! You can’t use the schema format of a previous release with a new release, that will throw errors all over. Some schema changes involve changes in interdependencies between tables or splitting or merging of tables etc.

If you need only very specific data, like the user enrolment data, but you don’t care for user progress through the course for instance, there may be ways out. If you just want to maintain the same user accounts, enrolments to the same courses and the same courses, perhaps you can do a limited export of that data, process it and reimport it.

I don’t know of any existing tools for this, but if you do end up creating them they would be valuable to others as well.