/**
* Minimum previous CiviCRM version we can directly upgrade from
*/
- const MINIMUM_UPGRADABLE_VERSION = '4.2.9';
+ const MINIMUM_UPGRADABLE_VERSION = '4.4.7';
/**
* @var \CRM_Core_Config
if (!isset($errorMessage)) {
$errorMessage = 'pre-condition failed for current upgrade step';
}
- CRM_Core_Error::fatal($errorMessage);
+ throw new CRM_Core_Exception($errorMessage);
}
$this->assign('recentlyViewed', FALSE);
}
if (!isset($errorMessage)) {
$errorMessage = 'post-condition failed for current upgrade step';
}
- CRM_Core_Error::fatal($errorMessage);
+ throw new CRM_Core_Exception($errorMessage);
}
}
}
else {
if (!file_exists($sqlFile)) {
- CRM_Core_Error::fatal("sqlfile - $rev.mysql not found.");
+ throw new CRM_Core_Exception("sqlfile - $rev.mysql not found.");
}
$this->source($sqlFile);
}
$latestVer = CRM_Utils_System::version();
$currentVer = CRM_Core_BAO_Domain::version(TRUE);
if (!$currentVer) {
- CRM_Core_Error::fatal(ts('Version information missing in civicrm database.'));
+ throw new CRM_Core_Exception(ts('Version information missing in civicrm database.'));
}
elseif (stripos($currentVer, 'upgrade')) {
- CRM_Core_Error::fatal(ts('Database check failed - the database looks to have been partially upgraded. You may want to reload the database with the backup and try the upgrade process again.'));
+ throw new CRM_Core_Exception(ts('Database check failed - the database looks to have been partially upgraded. You may want to reload the database with the backup and try the upgrade process again.'));
}
if (!$latestVer) {
- CRM_Core_Error::fatal(ts('Version information missing in civicrm codebase.'));
+ throw new CRM_Core_Exception(ts('Version information missing in civicrm codebase.'));
}
return [$currentVer, $latestVer];
]);
}
+ if (version_compare(CRM_Utils_SQL::getDatabaseVersion(), CRM_Upgrade_Incremental_General::MIN_INSTALL_MYSQL_VER) < 0) {
+ $error = ts('CiviCRM %4 requires MySQL version v%1 or MariaDB v%3 (or newer), but the current system uses %2 ',
+ [
+ 1 => CRM_Upgrade_Incremental_General::MIN_INSTALL_MYSQL_VER,
+ 2 => CRM_Utils_SQL::getDatabaseVersion(),
+ 3 => '10.1',
+ 4 => $latestVer,
+ ]);
+ }
+
// check for mysql trigger privileges
if (!\Civi::settings()->get('logging_no_trigger_permission') && !CRM_Core_DAO::checkTriggerViewPermission(FALSE, TRUE)) {
$error = ts('CiviCRM %1 requires MySQL trigger privileges.',
// Ensure that queue can be created
if (!CRM_Queue_BAO_QueueItem::findCreateTable()) {
- CRM_Core_Error::fatal(ts('Failed to find or create queueing table'));
+ throw new CRM_Core_Exception(ts('Failed to find or create queueing table'));
}
$queue = CRM_Queue_Service::singleton()->create([
'name' => self::QUEUE_NAME,
// pre-db check for major release.
if ($upgrade->checkVersionRelease($rev, 'alpha1')) {
if (!(is_callable([$versionObject, 'verifyPreDBstate']))) {
- CRM_Core_Error::fatal("verifyPreDBstate method was not found for $rev");
+ throw new CRM_Core_Exception("verifyPreDBstate method was not found for $rev");
}
$error = NULL;
if (!isset($error)) {
$error = "post-condition failed for current upgrade for $rev";
}
- CRM_Core_Error::fatal($error);
+ throw new CRM_Core_Exception($error);
}
}