1
0
Fork 0
mirror of https://github.com/Oreolek/ifhub.club.git synced 2024-05-20 17:58:24 +03:00

Проверка структуры базы модулем Install при "заказе" конвертации 0.3.1->0.4

This commit is contained in:
Alexey Kachayev 2009-12-08 23:05:14 +00:00
parent 6adec667d0
commit cd04a66145
3 changed files with 33 additions and 1 deletions

View file

@ -1009,6 +1009,7 @@ class Install {
mysql_query('set names utf8');
return $oDb;
}
$this->aMessages[] = array('type'=>'error','text'=>$this->Lang('error_db_connection_invalid'));
return null;
}
@ -1077,12 +1078,41 @@ class Install {
}
return array('result'=>false,'errors'=>$aErrors);
}
/**
* Проверяем, нуждается ли база в конвертации или нет
*
* @param array $aParams
* @return bool
*/
function ValidateConvertDatabase($aParams) {
/**
* Проверяем, нуждается ли база в конвертации или нет
* Смотрим, какие таблицы существуют в базе данных
*/
$aDbTables = array();
$aResult = @mysql_query("SHOW TABLES");
if(!$aResult){
return array('result'=>false,'errors'=>array($this->Lang('error_db_no_data')));
}
while($aRow = mysql_fetch_array($aResult, MYSQL_NUM)){
$aDbTables[] = $aRow[0];
}
/**
* Смотрим на наличие в базе таблицы prefix_comment
*/
return !in_array($aParams['prefix'].'comment',$aDbTables);
}
/**
* Конвертирует базу данных версии 0.3.1 в базу данных версии 0.4
*
* @return bool
*/
function ConvertDatabase($sFilePath,$aParams) {
function ConvertDatabase($sFilePath,$aParams) {
if(!$this->ValidateConvertDatabase($aParams)) {
return array('result'=>true,'errors'=>array($this->Lang("error_database_converted_already")));
}
$sFileQuery = @file_get_contents($sFilePath);
if(!$sFileQuery) return array('result'=>false,'errors'=>array($this->Lang("config_file_not_exists", array('path'=>$sFilePath))));

View file

@ -86,6 +86,7 @@ return array(
'db_params_engine_notice'=>'InnoDB is recommended',
'error_table_select'=>'Error select query data from a table %%table%%',
'error_database_converted_already'=>'Given database already converted to v.0.4',
'admin_params'=>'Administrator`s settings',
'admin_params_login'=>'Login',

View file

@ -86,6 +86,7 @@ return array(
'db_params_engine_notice'=>'Рекомендуется использовать InnoDB',
'error_table_select'=>'Ошибка запроса на выборку данных из таблицы %%table%%',
'error_database_converted_already'=>'Конвертация отменена, так как структура базы данных соответствует версии 0.4',
'admin_params'=>'Настройка данных администратора',
'admin_params_login'=>'Логин',