X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=CRM%2FUpgrade%2FIncremental%2FLegacy.php;h=d1b08b7a6d28e4633f6158abcdc493290b43af0c;hb=a6da8f4ce01fc90680ae8c52c976797b2a953579;hp=85d694725d80322d26f30acc41552d674d7f1b64;hpb=4c95b949e863281d990ffa2a3104415079e6352d;p=civicrm-core.git diff --git a/CRM/Upgrade/Incremental/Legacy.php b/CRM/Upgrade/Incremental/Legacy.php index 85d694725d..d1b08b7a6d 100644 --- a/CRM/Upgrade/Incremental/Legacy.php +++ b/CRM/Upgrade/Incremental/Legacy.php @@ -43,6 +43,8 @@ class CRM_Upgrade_Incremental_Legacy { * Compute any messages which should be displayed before upgrade * * @param $preUpgradeMessage string, alterable + * @param $currentVer + * @param $latestVer */ static function setPreUpgradeMessage(&$preUpgradeMessage, $currentVer, $latestVer) { $upgrade = new CRM_Upgrade_Form(); @@ -108,8 +110,27 @@ SELECT id )); } } + + if (CRM_Core_BAO_Setting::getItem(CRM_Core_BAO_Setting::SEARCH_PREFERENCES_NAME, 'enable_innodb_fts', NULL, FALSE)) { + // The FTS indexing feature dynamically manipulates the schema which could + // cause conflicts with other layers that manipulate the schema. The + // simplest thing is to turn it off and back on. + + // It may not always be necessary to do this -- but I doubt we're going to test + // systematically in future releases. When it is necessary, one could probably + // ignore the matter and simply run CRM_Core_InnoDBIndexer::fixSchemaDifferences + // after the upgrade. But that's speculative. For now, we'll leave this + // advanced feature in the hands of the sysadmin. + $preUpgradeMessage .= '
' . ts('This database uses InnoDB Full Text Search for optimized searching. The upgrade procedure has not been tested with this feature. You should disable (and later re-enable) the feature by navigating to "Administer => System Settings => Miscellaneous".'); + } } + /** + * @param $template + * @param $message + * @param $latestVer + * @param $currentVer + */ static function checkMessageTemplate(&$template, &$message, $latestVer, $currentVer) { if (version_compare($currentVer, '3.1.alpha1') < 0) { return; @@ -175,7 +196,7 @@ SELECT id if ($flag == TRUE) { $html = "