From cc0b2b763c264f50659211f301e177de37ce77ed Mon Sep 17 00:00:00 2001
From: satish <satish.dvnk@vtiger.com>
Date: Tue, 13 Feb 2018 18:56:05 +0530
Subject: [PATCH] Fixes #799 - Move starred featured to common entity table.

---
 modules/Migration/schema/701_to_710.php | 17 ++++++++++++++---
 1 file changed, 14 insertions(+), 3 deletions(-)

diff --git a/modules/Migration/schema/701_to_710.php b/modules/Migration/schema/701_to_710.php
index 6e62b7b1..033b4216 100644
--- a/modules/Migration/schema/701_to_710.php
+++ b/modules/Migration/schema/701_to_710.php
@@ -182,9 +182,20 @@ if (defined('VTIGER_UPGRADE')) {
 		Vtiger_Utils::CreateTable($generalUserFieldTable,
 				'(`recordid` INT(19) NOT NULL, 
 				`userid` INT(19) NOT NULL,
-				`starred` VARCHAR(100) DEFAULT NULL,
-				Index `record_user_idx` (`recordid`, `userid`),
-				FOREIGN KEY (recordid) REFERENCES vtiger_crmentity(crmid) ON DELETE CASCADE)', true);
+				`starred` VARCHAR(100) DEFAULT NULL', true);
+	}
+
+	if (Vtiger_Utils::CheckTable($generalUserFieldTable)) {
+		$indexRes = $db->pquery("SHOW INDEX FROM $generalUserFieldTable WHERE NON_UNIQUE=? AND KEY_NAME=?", array('1', 'record_user_idx'));
+		if ($db->num_rows($indexRes) < 2) {
+			$db->pquery('ALTER TABLE vtiger_crmentity_user_field ADD CONSTRAINT record_user_idx UNIQUE KEY(recordid, userid)', array());
+		}
+
+		$checkUserFieldConstraintExists = $db->pquery('SELECT DISTINCT 1 FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE table_name=? AND CONSTRAINT_SCHEMA=?', array($generalUserFieldTable, $db->dbName));
+		if ($db->num_rows($checkUserFieldConstraintExists) < 1) {
+			$db->pquery('ALTER TABLE vtiger_crmentity_user_field ADD CONSTRAINT `fk_vtiger_crmentity_user_field_recordid` FOREIGN KEY (`recordid`) REFERENCES `vtiger_crmentity`(`crmid`) ON DELETE CASCADE', array());
+		}
+		
 	}
 
 	$migratedTables = array();
-- 
GitLab