Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

Find out about categories in the categories table but NOT in the nested tree model. This is probably pretty harmless (unless you appear to be mmissing categories all of a sudden) but can cause 3.x versions of FarCry to fail when trying to render the category picker.

Code Block
sql
sql
titleSQL to see missing categoriessql
SELECT c.*
FROM categories c
WHERE 
categoryid NOT IN (SELECT objectid FROM nested_tree_objects)

Then decide what you want to do with any category items that appear. You could reattach them to the tree if there is something categoriesd to these category items.

Code Block
sql
sql
titleSQL to check for content assigned to dead categoriessql
SELECT * FROM refcategories
WHERE categoryid IN 
	(SELECT categoryid
	FROM categories
	WHERE 
	categoryid NOT IN 
		(SELECT objectid FROM nested_tree_objects))

or just delete them if they sem to be harmless enough.

Code Block
sql
sql
titleSQL to see missing categoriessql
DELETE
FROM categories c
WHERE 
categoryid NOT IN (SELECT objectid FROM nested_tree_objects)

However, you may have some orphaned categories in the nested tree model. ie those category references that have lost their parent (maybe through a deletion that didn't finish properly). You can grab a list of orphaned nested tree references using the following:

Code Block
sql
sql
titleSQL to check for orphan tree referencessql
SELECT *
FROM nested_tree_objects
WHERE 
parentid NOT IN (SELECT objectid FROM nested_tree_objects)
AND parentid <> ''

Rather than deleting everything you could just find the object references a new parent!

Code Block
sql
sql
titleSQL to update orphans with a new parentsql
UPDATE nested_tree_objects
SET
parentid='--some UUID of valid parent--'
WHERE
objectid IN (select objectid from nested_tree_objects
		where 
		parentid NOT IN (select objectid from nested_tree_objects))
		AND (parentid is not null or parentid <> '')