Skip to content

Contentstore migration plan [FC-0138] - #880

Open
bradenmacdonald wants to merge 2 commits into
mainfrom
braden/contentstore-migration
Open

bradenmacdonald wants to merge 2 commits into
mainfrom
braden/contentstore-migration

Conversation

@bradenmacdonald

@bradenmacdonald bradenmacdonald commented Oct 16, 2026 •

Copy link
Copy Markdown
Contributor

This is a high-level plan for replacing contentstore, building on the earlier PRs in this stack (mostly #822).

Read the rendered docs here

AI disclosure: Claude helped me with research, writing, and formatting the RST, but I wrote/rewrote much of the final content.

@openedx-webhooks openedx-webhooks added open-source-contribution PR author is not from Axim or 2U core contributor PR author is a Core Contributor (who may or may not have write access to this repo). labels Oct 16, 2026
@openedx-webhooks

Copy link
Copy Markdown

Thanks for the pull request, @bradenmacdonald!

This repository is currently maintained by @axim-engineering.

Once you've gone through the following steps feel free to tag them in a comment and let them know that your changes are ready for engineering review.

🔘 Get product approval

If you haven't already, check this list to see if your contribution needs to go through the product review process.

  • If it does, you'll need to submit a product proposal for your contribution, and have it reviewed by the Product Working Group.
    • This process (including the steps you'll need to take) is documented here.
  • If it doesn't, simply proceed with the next step.
🔘 Provide context

To help your reviewers and other members of the community understand the purpose and larger context of your changes, feel free to add as much of the following information to the PR description as you can:

  • Dependencies

    This PR must be merged before / after / at the same time as ...

  • Blockers

    This PR is waiting for OEP-1234 to be accepted.

  • Timeline information

    This PR must be merged by XX date because ...

  • Partner information

    This is for a course on edx.org.

  • Supporting documentation
  • Relevant Open edX discussion forum threads
🔘 Get a green build

If one or more checks are failing, continue working on your changes until this is no longer the case and your build turns green.

Details
Where can I find more information?

If you'd like to get more details on all aspects of the review process for open source pull requests (OSPRs), check out the following resources:

When can I expect my changes to be merged?

Our goal is to get community contributions seen and reviewed as efficiently as possible.

However, the amount of time that it takes to review and merge a PR can vary significantly based on factors such as:

  • The size and impact of the changes that it introduces
  • The need for product review
  • Maintenance status of the parent repository

💡 As a result it may take up to several weeks or months to complete a review and merge your PR.


A management command migrates **one course run at a time**:

1. Mark the course read-only for file writes (at the new routing layer per decision 2). During this time, any contentstore write operations will result in an error. While read-only, a warning should be shown in Studio on the course Files page, and importing over that course should also be blocked.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

While read-only, a warning should be shown in Studio on the course Files page

This won't just happen on the Files page. It can also occur with course_image, banner_image, video_thumbnail_image, etc. Would this also happen when creating a new rerun of the course?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A re-run should work fine, since re-runs do not modify the original course.

It can also occur with course_image, banner_image, video_thumbnail_image, etc.

Good thinking, but most of those are just text field settings on the advanced settings page; changing the text fields will still work fine. I think the only other place where you can actually upload a file is the "Course card image" widget on "Schedule & Details", and it's very unlikely that users will be changing that during the brief migration period. In any case, it's more of an implementation detail, and this ADR just needs to capture the high-level overview of the process and the major decisions about it, not list every UX detail.


Rollout:

* **Willow:** opt-in, with a system-level setting controlling whether new courses should use the legacy or migrated mode, plus a tool/command for migrating courses either individually or in bulk.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And what about reruns in Willow? If the setting is set to "migrated," does creating a rerun of a legacy course result in a legacy rerun or a migrated one?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, I think re-runs should generally use the system default for new courses, whatever that setting is.

If things are working fine, there's no reason not to use "migrated" for new courses, and if there's issues then the default setting for new courses will be "legacy" and re-runs won't break anything.

@mphilbrick211 mphilbrick211 added the FC Relates to an Axim Funded Contribution project label Oct 22, 2026
@mphilbrick211 mphilbrick211 moved this from Needs Triage to Ready for Review in Contributions Oct 22, 2026
@mphilbrick211 mphilbrick211 moved this from Ready for Review to Waiting on Author in Contributions Oct 22, 2026
Base automatically changed from braden/serving-assets to main October 30, 2026 22:21
@bradenmacdonald
bradenmacdonald force-pushed the braden/contentstore-migration branch from ba6b12a to 20c4c13 Compare October 30, 2026 22:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

core contributor PR author is a Core Contributor (who may or may not have write access to this repo). FC Relates to an Axim Funded Contribution project open-source-contribution PR author is not from Axim or 2U

Projects

Status: Waiting on Author

Development

Successfully merging this pull request may close these issues.

4 participants