Migrating and Upgrading an Open edX® Instance Nine Versions at Once

Penn State needed to migrate its long-running Open edX instance and upgrade nine releases in one go. We completed the migration in record time, meeting critical deadlines and ensuring a smooth upgrade despite the challenging requirements.

The Client

The Penn State College of Agricultural Sciences is a land-grant university that serves the entire state of Pennsylvania, with a focus on agricultural education and research. As part of this mission, its Extension program offers affordable online courses to constituents. These courses support professional certification, continuing education, and personal enrichment for citizens across the state and beyond.

The Challenge

The Extension program at the College of Agricultural Sciences was built on the Open edX platform. At launch, Penn State partnered with a provider that maintained a heavily customized version of the platform. Over time, however, these customizations became increasingly difficult to maintain, and the instance fell nine major releases behind, creating significant technical risk and limiting the platform’s long-term sustainability.

After years of collaboration, the existing provider was no longer able to deliver upgrades or ongoing platform improvements. With the support contract nearing its end, Penn State faced a high-risk situation: migrating a deeply customized, live Open edX instance while simultaneously upgrading it across nine major releases, all with minimal disruption to learners or course delivery.

Penn State engaged OpenCraft to execute this complex migration under tight deadlines, ensuring continuity of service while modernizing the platform to a fully supported and maintainable state.

Our Approach

Our approach combined early discovery, parallel technical workstreams, and the migration of a staging environment to reduce risk during the production migration. This strategy allowed us to meet our fixed deadline.

Initial Discovery

OpenCraft immediately began interviewing the Penn State Extension team to understand the customized functionality they were using. We identified the custom API endpoints and data models that integrated with their e-commerce system and walked through the custom registration process end to end. This enabled us to map which features of the custom extensions were actually in use and how they fit together.

Complicating the upgrade was the age of their existing version, which was approximately five years old. During that time, deployment methods had evolved significantly, shifting from virtual machines to container-based solutions such as Docker and Kubernetes. In addition, the database schema had changed substantially between versions.

All of our clients are assigned a dedicated team member who serves as their primary point of contact and sees the project through from start to finish. This role is known as the “Client Owner.” In this case, the Client Owner was Fox, a team member who has been contributing to the Open edX project since 2013.

Fox outlined a plan to address all of these challenges within the deadline by completing several workstreams in parallel. While one team member focused on the database, another handled forward-porting the customizations, and a third rewrote the configuration for the new system.

Migrating the Data

We created a new staging environment that integrates with the staging copy of the client’s e-commerce platform. Team member Arunmozhi was tasked with scripting the data migration work.

There is no official method to jump forward across as many platform versions as required. For more recent versions of the platform, performing upgrades using the official deployment tool, Tutor, works very well. However, for older versions that predate Tutor, or are old enough that the required Tutor-based tools no longer run, an alternative approach is required.

Arun leveraged Atlas, a database migration planning tool, which allowed him to directly compare the client’s customized Open edX database with a standard, modern installation of the platform. Using this approach, along with custom scripting to reconcile non-schema changes between versions, he was able to demonstrate that a migration would work using a copy of the staging databases.

Forward-Porting the Customizations

Samuel, another team member, dug into the installation and determined which custom extensions were still used by Penn State. He then set to work porting these extensions to the latest version. This involved upgrading the version of Python in use and switching the extensions to modern APIs. To ensure the software continued to function correctly, he drafted comprehensive test plans that could be used to verify functionality in future updates.

Meanwhile, a colleague, Pooja, examined the old system configuration to manage the custom-routed requests to Penn State Extension’s e-commerce platform. She ensured that user profiles and logins continued to work as they had previously, despite the transition to an entirely new redirection system.

Performing the Migration

After developing solutions for all identified issues, we migrated the staging environment to the new installation. This allowed us to test the entire migration process end to end and identify any remaining gaps. After another couple of weeks spent addressing these issues, we migrated the production instance, applying everything we had learned.

The instance was quite large, with an extensive historical dataset. The day-of migration required approximately 12 hours of dedicated work, followed by several days of rapid efforts to resolve any lingering issues.

The Result

Despite the challenges, OpenCraft delivered a top-notch migration. Penn State surveyed their team and received the following feedback from staff:

  • “Almost like another normal day at work”
  • “Relatively painless”
  • “Incredibly well for such a big jump in versions”
  • “Smooth as possible“
  • “Integrations worked better than with any other upgrade”
  • “I know we pay him and the OpenCraft company, but I want to send Fox a batch of cookies for his commitment to the project.”

Only a few weeks after the initial migration and upgrades, a new version of the platform became available. This time, the upgrade took only about an hour and had no issues at all—not even any downtime. This was made possible by OpenCraft’s Kubernetes-based deployment environment, which enables clean rollovers between versions going forward.

Penn State can now look forward to predictable maintenance and hosting costs, timely upgrades, and expert development assistance for their Open edX instance with OpenCraft.

An Upgrade of Your Own

Planning an upgrade from an older version of the Open edX platform? Contact us to discuss your migration and how we can help reduce risk, minimize downtime, and ensure a smooth transition.

“I can’t thank you enough for a successful migration this week. By measure of the incoming cases from our customer service team, this was by far our most successful major platform upgrade to date. Your attention to detail and responsiveness were key, and I appreciate everything [OpenCraft] did to set us up for success.”
Kate Oyler | Assistant Director, Web Strategy and Operations | Penn State College of Agricultural Sciences

Looking for a top-notch learning solution?

We’re an elite team of designers and developers, who love creating quality learning management solutions. Let’s chat about your next project.
Get in touch

Get in touch

We'd love to hear from you! Send us a message and a member of our team will get back to you.
Contact us
Subscribe to our newsletter
© OpenCraft 2026
edX and Open edX® are trademarks of edX Inc
linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram