Quote:
Originally Posted by davidfor
I very much doubt if there is a difference in how the basic way that the apps do their delete.
|
And yet, there is. Shelves that can't be deleted on the device
can be deleted in the app; therefore, there is a difference in how they handle deletion. Theory's all well and good, but empirical evidence trumps it every time.
Quote:
Originally Posted by davidfor
That is way overkill. If the deletes and syncs all worked, then the database will be clean.
|
The evidence says otherwise. This isn't a theory I've worked up out of whole cloth; I experimented, recorded the results, and am reporting on What Really Worked.
Quote:
Originally Posted by davidfor
But, of course, if what you say about the apps doing it better, then your instructions are overkill, especially when you add the logout step. Solution is simple:
- Logout on the device
- Delete all the shelves on the app
- Sync the app
- Login on the device.
If that doesn't sort it out, then nothing will.
|
If you only have one set of duplicates, and your second pass through the app shows you no new resurrections, then that
will sort it out. However, that's not the case in reports I've seen, where a sync produces multiple duplicates of the same shelf. In those cases, you
must go through the sync-delete-sync step multiple times to kill all the duplicates. There's just no way around that, as the app isn't designed to show multiple shelves with the same name but different IDs, which is the real issue; the device doesn't handle "same shelf name, different ID" correctly.
Suppose I have a shelf named SF, and I sync my device and see three copies (IDs 1, 2, and 3) of that shelf. I can't delete any of the three from the device, because the other two instantly resurrect it. I can't see but one copy in the app, but I
can delete it there. So I do that, and maybe that kills SF #2 on the server. Sync down to the device, and hopefully it kills SF #2 there as well.
But you still have SF #3 to deal with. That's why you resync the app, see another SF shelf pop up, kill it, and resync, and that's why you resync the app
again after pulling that fix down to the device. Properly, you should keep going until you get a clean app sync with
no copies of SF, whereupon you can create a new SciFi shelf to replace it.
You have to eradicate all the duplicates before the problem is fixed, and that has to be done in (in this case) all three places: app, device, and server. It's
possible that the device database will be fixed and pristine at this point, but it's much safer to kill it (by logging out) and reconstitute it than to cross your fingers and
hope you're safe. It's like nuking the planet from orbit; it's the only way to be sure.

Besides, this is a long enough process to begin with; do you really want to trade the effort of making one more pass for the possibility of having to go through all of this
again later?
I happen to write code for a living, and I've been programming for over 25 years; I
do know a
little bit about dealing with this sort of thing...