Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use a "through" model for the ManyToManyField fields - phase 3 #28109

Merged

Conversation

doctoryes
Copy link
Contributor

@doctoryes doctoryes commented Jul 7, 2021

Description

fix: Use a "through" model for the ManyToManyField fields in CourseSection and CourseSectionSequence to ensure that cascading deletes will occur to delete the relation upon deletion of a foreign-keyed object.

This commit is phase 3 of 4 in order to ensure a smooth deploy. The phases:

  1. Add separate through models for user partition groups, add fields to point to the
    separate models, and start writing to those fields as well. (COMPLETE)
  2. After all models have been re-generated, switch code over to use separate through
    model fields backed by the separate through models and stop writing to the original
    ManyToManyField field. (COMPLETE)
  3. After phase 2 is deployed smoothly, remove the original ManyToManyField fields. (This PR!)
  4. After phase 3 is deployed smoothly, rename the new fields to have the same name
    as the old fields, so new_user_partition_groups -> user_partition_groups.

This PR is designed to be able to easily be rolled-back if anything goes wrong.

Supporting information

https://openedx.atlassian.net/browse/TNL-8314

Phase 1 PR: https://github.com/edx/edx-platform/pull/27941
Phase 2 PR: https://github.com/edx/edx-platform/pull/28032

Testing instructions

  • Ensure that old/new ManyToManyField tables have the same entries.
  • Ensure that course outlines are properly displayed.

Deadline

None

@doctoryes doctoryes force-pushed the juliasq/TNL-8314_integrity_error_learning_sequences_phase_3 branch 3 times, most recently from f0b7cde to 700cee1 Compare July 8, 2021 19:01
@doctoryes doctoryes changed the base branch from master to juliasq/TNL-8314_integrity_error_learning_sequences_phase_2 July 9, 2021 14:52
@doctoryes doctoryes force-pushed the juliasq/TNL-8314_integrity_error_learning_sequences_phase_3 branch from 700cee1 to 9313c1f Compare July 9, 2021 14:54
@doctoryes doctoryes force-pushed the juliasq/TNL-8314_integrity_error_learning_sequences_phase_2 branch from feecd67 to 58c36d4 Compare July 12, 2021 14:44
@doctoryes doctoryes force-pushed the juliasq/TNL-8314_integrity_error_learning_sequences_phase_3 branch from 9313c1f to 2d3a062 Compare July 12, 2021 14:46
Base automatically changed from juliasq/TNL-8314_integrity_error_learning_sequences_phase_2 to master July 12, 2021 18:03
…ction

and CourseSectionSequence to ensure that cascading deletes will occur to delete
the relation upon deletion of a foreign-keyed object.

This commit is phase 3 of 4 in order to ensure a smooth deploy. The phases:
1) Add separate through models for user partition groups, add fields to point to the
   separate models, and start writing to those fields as well. (COMPLETE)
2) After all models have been re-generated, switch code over to use separate through
   model fields backed by the separate through models *and* stop writing to the original
   ManyToManyField field. (COMPLETE)
3) After phase 2 is deployed smoothly, remove the original ManyToManyField fields. (This PR!)
4) After phase 3 is deployed smoothly, rename the new fields to have the same name
   as the old fields, so new_user_partition_groups -> user_partition_groups.

This PR is designed to be able to easily be rolled-back if anything goes wrong.
@doctoryes doctoryes force-pushed the juliasq/TNL-8314_integrity_error_learning_sequences_phase_3 branch from 2d3a062 to e655fc9 Compare July 12, 2021 18:29
@edx-status-bot
Copy link

Your PR has finished running tests. There were no failures.

@doctoryes doctoryes merged commit a68bfe2 into master Jul 13, 2021
@doctoryes doctoryes deleted the juliasq/TNL-8314_integrity_error_learning_sequences_phase_3 branch July 13, 2021 15:04
@edx-pipeline-bot
Copy link
Contributor

EdX Release Notice: This PR has been deployed to the staging environment in preparation for a release to production.

@edx-pipeline-bot
Copy link
Contributor

EdX Release Notice: This PR has been deployed to the production environment.

@edx-pipeline-bot
Copy link
Contributor

EdX Release Notice: This PR has been deployed to the staging environment in preparation for a release to production.

@edx-pipeline-bot
Copy link
Contributor

EdX Release Notice: This PR has been deployed to the production environment.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants