Thanks! I’ll consider this.
The whole thing is supposed to be a tool for everyday work (although: a very dangerous one!), so the “fix the database once” strategy isn’t going to work for me.
I’ve added some tests for checking different relation types (m2m, fk, one-to-one, generic relation, parent-child links) and it seems to work fine; I tested using a bunch of complex records from production.
> If this is not a one-time thing, then you might consider doing something
similar through the admin interface, but breaking the problem down into
separate phases using intermediate models. Then you could review each
possible merge before going on to the next phase of actually doing a
merge, or choosing to ignore a merge candidate. You could also do
additional screening to, for example, select *which* customer record
should be considered complete and which ones should be retired.
That’s a good point. I think I’ll do something similar but more simple by providing an overview of all merges beforehand. This way, people will know what’s going to happen and have an opportunity to fix any issues upfront.
cheers, j