Potential breaking API changes and complex migrations in pulp_deb

It looks like we have a potential design flaw in pulp_deb, that might require reducing the uniqueness constraints on the Release content model. This would in turn require merging existing colliding content, and then regenerating all other content that references that content via foreign keys (which is numerous) across all existing repository versions. In the cleanest version of this potential fix, I would also be tempted to rename the model from Release to Distribution, which would change the API endpoint path. Either way there would be breaking API changes, since I would at the very least drop certain fields from the model.

My question is: Is there any experience of attempting anything like this for any plugin or pulpcore?
Do we already have examples for migrations that reduce a models uniqueness constraints, and then merge the then colliding content?
Do we have examples of migrations that retroactively add altered content to existing repo versions?

I am not yet certain this rather drastic change will ultimately be necessary, but I would like to here everyone’s thoughts regardless, so I can better evaluate the tradeoffs involved.

Dropping fields is fine, however if following semver when introducing new api endpoint you can only deprecate the old api endpoint which will be redirecting to the new