Open edX migration from AWS to XYZ network

Hello all,

We have some recent requirements that we need to move our production open edX server from AWS to XYZ network (data center you can say).

We have lots of customizations in our code base and custom tables in our MySQL DB. Right now we have single server native installation of open-release/hawthorn.master release.

What is the best way to achieve this or What things should I consider while migrating the platform?

It depends on which provider you choose. If you are going with well known provider like GCP or Azure, you can create AMI of aws ec2 instance and import it on GCP/Azure.

If you are going with any other provider and you want to do manual migration, I would suggest you to perform musqldump and import the same onto new instance.
For the code changes to reflect, checkin the aws code into your github account and use the same while installing onto the new server. Or use beyoud compare and reflect the changes after using openedx master repository for installation.

Thanks for the reply @chinmaybhatk,

I have not any choice for AMI, so I went with second approach.

  • installed open edX in XYZ network
  • dumped and restored DB in XYZ network from AWS
  • copied edx-platform from AWS server
  • added relevant settings in json files
  • restarted services

But when I started my server in debug mode got error like this:

django.db.migrations.exceptions.NodeNotFoundError: Migration my_app.0006_auto_20190720_0030 dependencies reference nonexistent parent node (u'auth', u'0009_auto_20190720_0030')

To resolve this I have to add 00009 migration from AWS server and applied migration.
0009 migration was on this path in AWS server /edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/django/contrib/auth/migrations

After changing 0009 migration file with AWS file makemigrations and migrate worked.

This was one miss, is there anything else I am missing?

Does anyone has done this before and faced issue like me?

Am I doing it in right way or not?