PATH:
home
/
letacommog
/
crmleta
/
modules
/
Migration
/
schema
<?php /*+******************************************************************************** * The contents of this file are subject to the vtiger CRM Public License Version 1.0 * ("License"); You may not use this file except in compliance with the License * The Original Code is: vtiger CRM Open Source * The Initial Developer of the Original Code is vtiger. * Portions created by vtiger are Copyright (C) vtiger. * All Rights Reserved. * ******************************************************************************* */ if(defined('VTIGER_UPGRADE')) { updateVtlibModule('Google', 'packages/vtiger/optional/Google.zip'); } if(defined('INSTALLATION_MODE')) { // Set of task to be taken care while specifically in installation mode. } //Handle migration for http://trac.vtiger.com/cgi-bin/trac.cgi/ticket/7552--senotesrel $seDeleteQuery="DELETE from vtiger_senotesrel WHERE crmid NOT IN(select crmid from vtiger_crmentity)"; Migration_Index_View::ExecuteQuery($seDeleteQuery,array()); $seNotesSql="ALTER TABLE vtiger_senotesrel ADD CONSTRAINT fk1_crmid FOREIGN KEY(crmid) REFERENCES vtiger_crmentity(crmid) ON DELETE CASCADE"; Migration_Index_View::ExecuteQuery($seNotesSql,array()); //Update uitype of created_user_id field of vtiger_field from 53 to 52 $updateQuery = "UPDATE vtiger_field SET uitype = 52 WHERE fieldname = 'created_user_id'"; Migration_Index_View::ExecuteQuery($updateQuery,array()); /*141*/ //registering handlers for Google sync require_once 'includes/main/WebUI.php'; require_once 'modules/WSAPP/Utils.php'; require_once 'modules/Google/connectors/Config.php'; wsapp_RegisterHandler('Google_vtigerHandler', 'Google_Vtiger_Handler', 'modules/Google/handlers/Vtiger.php'); wsapp_RegisterHandler('Google_vtigerSyncHandler', 'Google_VtigerSync_Handler', 'modules/Google/handlers/VtigerSync.php'); //updating Google Sync Handler names $db = PearDatabase::getInstance(); $names = array('Vtiger_GoogleContacts', 'Vtiger_GoogleCalendar'); $result = $db->pquery("SELECT stateencodedvalues FROM vtiger_wsapp_sync_state WHERE name IN (". generateQuestionMarks($names).")", array($names)); $resultRows = $db->num_rows($result); $appKey = array(); for($i=0; $i<$resultRows; $i++) { $stateValuesJson = $db->query_result($result, $i, 'stateencodedvalues'); $stateValues = Zend_Json::decode(decode_html($stateValuesJson)); $appKey[] = $stateValues['synctrackerid']; } if(!empty($appKey)) { $sql = 'UPDATE vtiger_wsapp SET name = ? WHERE appkey IN ('. generateQuestionMarks($appKey).')'; $res = Migration_Index_View::ExecuteQuery($sql, array('Google_vtigerSyncHandler', $appKey)); } //Ends 141 //Google Calendar sync changes /** * Please refer this trac (http://trac.vtiger.com/cgi-bin/trac.cgi/ticket/8354#comment:3) * for configuration of vtiger to Google OAuth2 */ global $adb; if(!Vtiger_Utils::CheckTable('vtiger_google_oauth2')) { Vtiger_Utils::CreateTable('vtiger_google_oauth2', '(service varchar(20),access_token varchar(500),refresh_token varchar(500),userid int(19))',true); echo '<br> vtiger_google_oauth2 table created <br>'; } //(start)Migrating GoogleCalendar ClientIds in wsapp_recordmapping to support v3 $syncTrackerIds = array(); if(Vtiger_Utils::CheckTable('vtiger_wsapp_sync_state')) { $sql = 'SELECT stateencodedvalues from vtiger_wsapp_sync_state WHERE name = ?'; $result = $db->pquery($sql,array('Vtiger_GoogleCalendar')); $num_of_rows = $adb->num_rows($result); for($i=0;$i<$num_of_rows;$i++) { $stateEncodedValues = $adb->query_result($result,$i,'stateencodedvalues'); $htmlDecodedStateEncodedValue = decode_html($stateEncodedValues); $stateDecodedValues = json_decode($htmlDecodedStateEncodedValue,true); if(is_array($stateDecodedValues) && isset($stateDecodedValues['synctrackerid'])) { $syncTrackerIds[] = $stateDecodedValues['synctrackerid']; } } } //$syncTrackerIds - list of all Calendar sync trackerIds $appIds = array(); if(count($syncTrackerIds)) { $sql = 'SELECT appid FROM vtiger_wsapp WHERE appkey IN (' . generateQuestionMarks($syncTrackerIds) . ')'; $result = Migration_Index_View::ExecuteQuery($sql,$syncTrackerIds); $num_of_rows = $adb->num_rows($result); for($i=0;$i<$num_of_rows;$i++) { $appId = $adb->query_result($result,$i,'appid'); if($appId) $appIds[] = $appId; } } //$appIds - list of all Calendarsync appids if(count($appIds)) { $sql = 'SELECT id,clientid FROM vtiger_wsapp_recordmapping WHERE appid IN (' . generateQuestionMarks($appIds) . ')'; $result = Migration_Index_View::ExecuteQuery($sql,$appIds); $num_of_rows = $adb->num_rows($result); for($i=0;$i<$num_of_rows;$i++) { $id = $adb->query_result($result,$i,'id'); $clientid = $adb->query_result($result,$i,'clientid'); $parts = explode('/', $clientid); $newClientId = end($parts); Migration_Index_View::ExecuteQuery('UPDATE vtiger_wsapp_recordmapping SET clientid = ? WHERE id = ?',array($newClientId,$id)); } echo '<br> vtiger_wsapp_recordmapping clientid migration completed for CalendarSync'; } //(end) //Google Calendar sync changes ends here //Google migration : Create Sync setting table $sql = 'CREATE TABLE vtiger_google_sync_settings (user int(11) DEFAULT NULL, module varchar(50) DEFAULT NULL , clientgroup varchar(255) DEFAULT NULL, direction varchar(50) DEFAULT NULL)'; $db->pquery($sql,array()); $sql = 'CREATE TABLE vtiger_google_sync_fieldmapping ( vtiger_field varchar(255) DEFAULT NULL, google_field varchar(255) DEFAULT NULL, google_field_type varchar(255) DEFAULT NULL, google_custom_label varchar(255) DEFAULT NULL, user int(11) DEFAULT NULL)'; $db->pquery($sql,array()); echo '<br>Google sync setting and mapping table added</br>';
[+]
..
[-] CONVENTION.md
[edit]
[-] 620_to_630.php
[edit]
[-] 600RC_to_600.php
[edit]
[-] 701_to_710.php
[edit]
[-] 630_to_640.php
[edit]
[-] 610_to_620.php
[edit]
[-] 640_to_650.php
[edit]
[-] 650_to_660.php
[edit]
[-] 660_to_700.php
[edit]
[-] 600_to_610.php
[edit]
[-] 540_to_600RC.php
[edit]
[-] 700_to_701.php
[edit]