[evolvis-commits] r11583: [#1878] Move of categories to extrafields creates huge number of extraneous records↵

mirabilos at evolvis.org mirabilos at evolvis.org
Thu Feb 24 18:19:34 CET 2011


Author: mirabilos
Date: 2011-02-24 18:19:34 +0100 (Thu, 24 Feb 2011)
New Revision: 11583

Added:
   trunk/gforge_base/evolvisforge-5.1/gforge/db/20060214.sql
Modified:
   trunk/gforge_base/evolvisforge-5.1/gforge/db/20050325-2.php
Log:
[#1878] Move of categories to extrafields creates huge number of extraneous records


Modified: trunk/gforge_base/evolvisforge-5.1/gforge/db/20050325-2.php
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/db/20050325-2.php	2011-02-24 17:19:33 UTC (rev 11582)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/db/20050325-2.php	2011-02-24 17:19:34 UTC (rev 11583)
@@ -1,7 +1,7 @@
 #! /usr/bin/php4 -f
 <?php
 /**
- * GForge Group Role Generator
+ * GForge Extra Field Conversion Script
  *
  * Copyright 2004 GForge, LLC
  * http://gforge.org/
@@ -120,14 +120,15 @@
 		}
 		$res2=db_query("INSERT INTO artifact_extra_field_data (artifact_id,field_data,extra_field_id)
 			SELECT artifact_id,$efe_id,$catbox_id FROM artifact 
-			WHERE category_id='$cat_id'");
+			WHERE category_id='$cat_id' AND group_artifact_id='$gaid'");
 		if (!$res2) {
 			echo "Could Not Insert AEFD for category " . db_error();
 			db_rollback();
 			exit(6);
 		}
 		$res3=db_query("UPDATE artifact_history SET old_value='$cat_name',field_name='Category'
-			WHERE old_value='$cat_id' AND field_name='category_id'");
+			WHERE old_value='$cat_id' AND field_name='category_id' AND artifact_id IN
+            (SELECT artifact_id FROM artifact WHERE group_artifact_id='$gaid')");
 		if (!$res3) {
 			echo "Could Not update history category " . db_error();
 			db_rollback();
@@ -171,14 +172,15 @@
 		}
 		$res2=db_query("INSERT INTO artifact_extra_field_data (artifact_id,field_data,extra_field_id)
 			SELECT artifact_id,$efe_id,$groupbox_id FROM artifact 
-			WHERE artifact_group_id='$artgroup_id'");
+			WHERE artifact_group_id='$artgroup_id' AND group_artifact_id='$gaid'");
 		if (!$res2) {
 			echo "Could Not Insert AEFD for artifactgroup " . db_error();
 			db_rollback();
 			exit(10);
 		}
 		$res3=db_query("UPDATE artifact_history SET old_value='$group_name',field_name='Group'
-			WHERE old_value='$artgroup_id' AND field_name='artifact_group_id'");
+			WHERE old_value='$artgroup_id' AND field_name='artifact_group_id' AND artifact_id IN
+            (SELECT artifact_id FROM artifact WHERE group_artifact_id='$gaid')");
 		if (!$res3) {
 			echo "Could Not update history artifactgroup " . db_error();
 			db_rollback();
@@ -222,14 +224,15 @@
 			}
 			$res2=db_query("INSERT INTO artifact_extra_field_data (artifact_id,field_data,extra_field_id)
 				SELECT artifact_id,$efe_id,$resolutionbox_id FROM artifact 
-				WHERE resolution_id='$resolution_id'");
+				WHERE resolution_id='$resolution_id' AND group_artifact_id='$gaid'");
 			if (!$res2) {
 				echo "Could Not Insert AEFD for resolution " . db_error();
 				db_rollback();
 				exit(14);
 			}
 			$res3=db_query("UPDATE artifact_history SET old_value='$resolution_name',field_name='Resolution'
-				WHERE old_value='$resolution_id' AND field_name='resolution_id'");
+				WHERE old_value='$resolution_id' AND field_name='resolution_id' AND artifact_id IN 
+				(SELECT artifact_id FROM artifact WHERE group_artifact_id='$gaid')");
 			if (!$res3) {
 				echo "Could Not update history resolution " . db_error();
 				db_rollback();
@@ -237,8 +240,8 @@
 			}
 		}
 	}
-	db_commit();
 }
+db_commit();
 
 
 echo "SUCCESS";

Added: trunk/gforge_base/evolvisforge-5.1/gforge/db/20060214.sql
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/db/20060214.sql	                        (rev 0)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/db/20060214.sql	2011-02-24 17:19:34 UTC (rev 11583)
@@ -0,0 +1,4 @@
+DELETE from artifact_extra_field_data where extra_field_id NOT IN 
+(select aefl.extra_field_id FROM artifact_extra_field_list aefl, artifact a 
+WHERE a.group_artifact_id=aefl.group_artifact_id and a.artifact_id=artifact_extra_field_data.artifact_id);
+



More information about the evolvis-commits mailing list