From 4ecfa1d6e043efb4bd832e1a94b796dc3ea50fea Mon Sep 17 00:00:00 2001 From: Laurent Destailleur <eldy@destailleur.fr> Date: Sat, 26 Apr 2014 21:40:57 +0200 Subject: [PATCH] Clean corrupted data for categories Conflicts: htdocs/install/mysql/migration/repair.sql --- htdocs/install/mysql/migration/repair.sql | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/htdocs/install/mysql/migration/repair.sql b/htdocs/install/mysql/migration/repair.sql index 0495171a9d0..366c06741b1 100644 --- a/htdocs/install/mysql/migration/repair.sql +++ b/htdocs/install/mysql/migration/repair.sql @@ -55,6 +55,18 @@ delete from llx_product_extrafields where fk_object not in (select rowid from ll --delete from llx_societe_commerciaux where fk_soc not in (select rowid from llx_societe); +-- Fix: delete category child with no category parent. +drop table tmp_categorie; +create table tmp_categorie as select * from llx_categorie; +-- select * from llx_categorie where fk_parent not in (select rowid from tmp_categorie) and fk_parent is not null and fk_parent <> 0; +delete from llx_categorie where fk_parent not in (select rowid from tmp_categorie) and fk_parent is not null and fk_parent <> 0; +drop table tmp_categorie; +-- Fix: delete orphelin category. +delete from llx_categorie_product where fk_categorie not in (select rowid from llx_categorie where type = 0); +delete from llx_categorie_societe where fk_categorie not in (select rowid from llx_categorie where type in (1, 2)); +delete from llx_categorie_member where fk_categorie not in (select rowid from llx_categorie where type = 3); + + -- Fix: delete orphelin deliveries. Note: deliveries are linked to shipment by llx_element_element only. No other links. delete from llx_livraisondet where fk_livraison not in (select fk_target from llx_element_element where targettype = 'delivery') AND fk_livraison not in (select fk_source from llx_element_element where sourcetype = 'delivery'); delete from llx_livraison where rowid not in (select fk_target from llx_element_element where targettype = 'delivery') AND rowid not in (select fk_source from llx_element_element where sourcetype = 'delivery'); -- GitLab