mirror of
https://github.com/Combodo/iTop.git
synced 2026-02-13 07:24:13 +01:00
Renamed priv_Userinternal into priv_userinternal, and added a check for table names (lowercase is the rule!)
SVN:trunk[2435]
This commit is contained in:
@@ -3175,6 +3175,14 @@ abstract class MetaModel
|
||||
$aSugFix = array();
|
||||
foreach (self::GetClasses() as $sClass)
|
||||
{
|
||||
$sTable = self::DBGetTable($sClass);
|
||||
$sTableLowercase = strtolower($sTable);
|
||||
if ($sTableLowercase != $sTable)
|
||||
{
|
||||
$aErrors[$sClass][] = "Table name '".$sTable."' has upper case characters. You might encounter issues when moving your installation between Linux and Windows.";
|
||||
$aSugFix[$sClass][] = "Use '$sTableLowercase' instead. Step 1: If already installed, then rename manually in the DB: RENAME TABLE `$sTable` TO `{$sTableLowercase}_tempname`, `{$sTableLowercase}_tempname` TO `$sTableLowercase`; Step 2: Rename the table in the datamodel and compile the application. Note: the MySQL statement provided in step 1 has been designed to be compatible with Windows or Linux.";
|
||||
}
|
||||
|
||||
$aNameSpec = self::GetNameSpec($sClass);
|
||||
foreach($aNameSpec[1] as $i => $sAttCode)
|
||||
{
|
||||
|
||||
@@ -282,7 +282,7 @@ abstract class UserInternal extends User
|
||||
"name_attcode" => "login",
|
||||
"state_attcode" => "",
|
||||
"reconc_keys" => array('login'),
|
||||
"db_table" => "priv_internalUser",
|
||||
"db_table" => "priv_internaluser",
|
||||
"db_key_field" => "id",
|
||||
"db_finalclass_field" => "",
|
||||
);
|
||||
|
||||
@@ -532,6 +532,21 @@ class ApplicationInstaller
|
||||
$oProductionEnv = new RunTimeEnvironment($sTargetEnvironment);
|
||||
$oProductionEnv->InitDataModel($oConfig, true); // load data model only
|
||||
|
||||
// Migrate application data format
|
||||
//
|
||||
// priv_internalUser caused troubles because MySQL transforms table names to lower case under Windows
|
||||
// This becomes an issue when moving your installation data to/from Windows
|
||||
// Starting 2.0, all table names must be lowercase
|
||||
if ($sMode != 'install')
|
||||
{
|
||||
SetupPage::log_info("Renaming 'priv_internalUser' into 'priv_internaluser' (lowercase)");
|
||||
// This command will have no effect under Windows...
|
||||
// and it has been written in two steps so as to make it work under windows!
|
||||
$sRepair = "RENAME TABLE `priv_internalUser` TO `priv_internaluser_other`, `priv_internaluser_other` TO `priv_internaluser`";
|
||||
CMDBSource::SelectDB($sDBName);
|
||||
CMDBSource::Query($sRepair);
|
||||
}
|
||||
|
||||
// Module specific actions (migrate the data)
|
||||
//
|
||||
$aAvailableModules = $oProductionEnv->AnalyzeInstallation(MetaModel::GetConfig(), APPROOT.$sModulesDir);
|
||||
|
||||
Reference in New Issue
Block a user