]> git.ipfire.org Git - thirdparty/patchwork.git/commit
models: Merge 'Patch' and 'Submission'
authorStephen Finucane <stephen@that.guru>
Tue, 3 Mar 2020 10:46:37 +0000 (10:46 +0000)
committerStephen Finucane <stephen@that.guru>
Sun, 26 Apr 2020 12:45:45 +0000 (13:45 +0100)
commitac0e4de9f56eb90d816a320f70d87c45d702432e
treef5f2f517c730af186cb405d3b17f866c41e14d03
parent0686a736fbf6d869bd31bd135ba38080ac96de22
models: Merge 'Patch' and 'Submission'

Oh, the follies of youth. Time to undo the damage of 2.0.0, specifically
commit 86172ccc16, which split Patch into two separate models using
concrete inheritance. As noted previously, this introduced a large
number of unavoidable JOINs across large tables and the performance
impacts these introduce are blocking other features we want, such as
improved tagging functionality. To combine these two models, we must do
the following:

- Update any references to the 'Patch' model to point to the
  'Submission' model instead
- Move everything from 'Patch' to 'Submission', including both fields
  and options
- Delete the 'Patch' model
- Rename the 'Submission' model to 'Patch'

With this change, our model "hierarchy" goes from:

  Submission
    Patch
    PatchComment
  Cover
    CoverComment

To a nice, flat:

  Patch
    PatchComment
  Cover
    CoverComment

I expect this migration to be intensive, particularly for MySQL users
who will see their entire tables rewritten. Unfortunately I don't see
any way to resolve this in an easier manner.

Signed-off-by: Stephen Finucane <stephen@that.guru>
patchwork/api/comment.py
patchwork/api/filters.py
patchwork/management/commands/dumparchive.py
patchwork/migrations/0043_merge_patch_submission.py [new file with mode: 0644]
patchwork/models.py
patchwork/parser.py
patchwork/tests/test_mboxviews.py
patchwork/tests/utils.py
patchwork/views/__init__.py
patchwork/views/utils.py