// Fix installer with clear mode to false

git-svn-id: http://dev.prestashop.com/svn/v1/branches/1.5.x@12935 b9a71923-0436-4b27-9f14-aed3839534dd
This commit is contained in:
rMalie
2012-02-02 15:00:02 +00:00
parent ce4852e1e5
commit 9da2d3f127
3 changed files with 62 additions and 50 deletions
+38 -41
View File
@@ -29,47 +29,6 @@ class InstallModelInstall extends InstallAbstractModel
{
const SETTINGS_FILE = 'config/settings.inc.php';
/**
* PROCESS : installDatabase
* Generate settings file and create database structure
*/
public function installDatabase($database_server, $database_login, $database_password, $database_name, $database_prefix, $database_engine, $clear_database = false)
{
// Generate settings file
$this->generateSettingsFile($database_server, $database_login, $database_password, $database_name, $database_prefix, $database_engine);
// Clear database (only tables with same prefix)
require_once _PS_ROOT_DIR_.'/'.self::SETTINGS_FILE;
if ($clear_database)
$this->clearDatabase();
// Install database structure
$sql_loader = new InstallSqlLoader();
$sql_loader->setMetaData(array(
'PREFIX_' => _DB_PREFIX_,
'ENGINE_TYPE' => _MYSQL_ENGINE_,
));
try
{
$sql_loader->parse_file(_PS_INSTALL_DATA_PATH_.'db_structure.sql');
}
catch (PrestashopInstallerException $e)
{
$this->setError($this->language->l('Database structure file not found'));
return false;
}
if ($errors = $sql_loader->getErrors())
{
foreach ($errors as $error)
$this->setError($this->language->l('An SQL error occured: <i>%1$s</i>', $error['error']));
return false;
}
return true;
}
/**
* Generate settings file
*/
@@ -124,6 +83,44 @@ class InstallModelInstall extends InstallAbstractModel
return true;
}
/**
* PROCESS : installDatabase
* Generate settings file and create database structure
*/
public function installDatabase($clear_database = false)
{
// Clear database (only tables with same prefix)
require_once _PS_ROOT_DIR_.'/'.self::SETTINGS_FILE;
if ($clear_database)
$this->clearDatabase();
// Install database structure
$sql_loader = new InstallSqlLoader();
$sql_loader->setMetaData(array(
'PREFIX_' => _DB_PREFIX_,
'ENGINE_TYPE' => _MYSQL_ENGINE_,
));
try
{
$sql_loader->parse_file(_PS_INSTALL_DATA_PATH_.'db_structure.sql');
}
catch (PrestashopInstallerException $e)
{
$this->setError($this->language->l('Database structure file not found'));
return false;
}
if ($errors = $sql_loader->getErrors())
{
foreach ($errors as $error)
$this->setError($this->language->l('An SQL error occured: <i>%1$s</i>', $error['error']));
return false;
}
return true;
}
/**
* Clear database (only tables with same prefix)
*