Merge remote-tracking branch 'origin/support/2.7' into develop

# Conflicts:
#	core/dbobject.class.php
#	core/log.class.inc.php
#	setup/compiler.class.inc.php
This commit is contained in:
Pierre Goiffon
2021-06-28 08:58:34 +02:00
15 changed files with 509 additions and 118 deletions

View File

@@ -64,6 +64,14 @@ class MFCompiler
/** @var \ThemeHandlerService */
protected static $oThemeHandlerService;
/**
* Path to the "calculate hKeys" file
* If this file is present, then we don't recalculate hkeys
*
* @var string
*/
public const REBUILD_HKEYS_NEVER= APPROOT.'data/.setup-rebuild-hkeys-never';
/** @var \ModelFactory */
protected $oFactory;
@@ -167,6 +175,20 @@ class MFCompiler
unlink(static::USE_SYMBOLIC_LINKS_FILE_PATH);
}
/**
* @return bool possible return values :
* * if flag is present true, false otherwise
*
* @uses \file_exists()
* @uses REBUILD_HKEYS_NEVER
*
* @since 2.7.5
*/
public static function SkipRebuildHKeys(): bool
{
return (file_exists(static::REBUILD_HKEYS_NEVER));
}
/**
* Compile the data model into PHP files and data structures
*

View File

@@ -598,11 +598,16 @@ class RunTimeEnvironment
$this->log_ok("Database structure successfully updated.");
// Check (and update only if it seems needed) the hierarchical keys
ob_start();
MetaModel::CheckHKeys(false /* bDiagnosticsOnly */, true /* bVerbose*/, true /* bForceUpdate */); // Since in 1.2-beta the detection was buggy, let's force the rebuilding of HKeys
$sFeedback = ob_get_clean();
$this->log_ok("Hierchical keys rebuilt: $sFeedback");
if (MFCompiler::SkipRebuildHKeys()) {
$this->log_ok("Hierchical keys are NOT rebuilt due to the presence of the \"data/.setup-rebuild-hkeys-never\" file");
} else {
ob_start();
$this->log_ok("Start of rebuilt of hierchical keys. If you have problems with this step, you can skip it by creating a \".setup-rebuild-hkeys-never\" file in data");
MetaModel::CheckHKeys(false /* bDiagnosticsOnly */, true /* bVerbose*/, true /* bForceUpdate */); // Since in 1.2-beta the detection was buggy, let's force the rebuilding of HKeys
$sFeedback = ob_get_clean();
$this->log_ok("Hierchical keys rebuilt: $sFeedback");
}
// Check (and fix) data sync configuration
ob_start();
MetaModel::CheckDataSources(false /*$bDiagnostics*/, true/*$bVerbose*/);