#7851: Update auf 3.1.0.0 nicht möglich

This commit is contained in:
Daniel Seifert 2018-09-19 11:27:23 +02:00
parent 8deb38dfc6
commit 5a82b58073
2 changed files with 81 additions and 2 deletions

View File

@ -38,6 +38,8 @@ UUrZ3pOeW9TUmo3MDg4dGx0RkRUK0wzb2k=';
'do' => 'updateModCfgItemExist'),
array('check' => 'hasDeleteGeoIpTableFields',
'do' => 'deleteGeoIpTableFields'),
array('check' => 'checkPrimaryIndexFieldExist',
'do' => 'addPrimaryIndexField'),
array('check' => 'checkGeoIpFields',
'do' => 'fixGeoIpFields'),
array('check' => 'checkIndizes',
@ -46,6 +48,8 @@ UUrZ3pOeW9TUmo3MDg4dGx0RkRUK0wzb2k=';
'do' => 'updateGeoIpTableEngine'),
array('check' => 'checkGeoIpItems',
'do' => 'updateGeoIpItems'),
array('check' => 'checkUnvalidGeoIpItems',
'do' => 'updateUnvalidGeoIpItems'),
array('check' => 'hasUnregisteredFiles',
'do' => 'showUnregisteredFiles'),
array('check' => 'checkRegisteredComponent',
@ -253,6 +257,54 @@ UUrZ3pOeW9TUmo3MDg4dGx0RkRUK0wzb2k=';
return $oInstallDbField->checkDeleteFields();
}
/**
* @return bool
* @throws oxSystemComponentException
*/
public function checkPrimaryIndexFieldExist()
{
$aCurrFields = $this->aFields;
$this->aFields = array(
'D3IP' => $this->aFields['D3IP']
);
$oDbFields = oxNew('d3installdbfield', $this);
$blRet = $oDbFields->checkFields();
$this->aFields = $aCurrFields;
return $blRet;
}
/**
* @return bool
* @throws oxSystemComponentException
*/
public function addPrimaryIndexField()
{
$aCurrFields = $this->aFields;
$aIpFieldData = $this->aFields['D3IP'];
$this->aFields = array(
'D3IP' => $aIpFieldData
);
$oDbFields = oxNew('d3installdbfield', $this);
$blRet1 = $oDbFields->fixFields();
$sQuery = "UPDATE `".$aIpFieldData['sTableName']."` set `".$aIpFieldData['sFieldName']."` = MD5(D3STARTIP) WHERE `".$aIpFieldData['sFieldName']."` = '';";
$this->setInitialExecMethod(__METHOD__);
/** @var d3installdbcommon $oDbCommon */
$oDbCommon = oxNew('d3installdbcommon', $this);
$blRet2 = $oDbCommon->tableSqlExecute($sQuery, $aIpFieldData['sTableName']);
$this->aFields = $aCurrFields;
return $blRet1 && $blRet2;
}
/**
* @return bool
* @throws oxSystemComponentException
@ -320,6 +372,27 @@ UUrZ3pOeW9TUmo3MDg4dGx0RkRUK0wzb2k=';
return $this->_confirmMessage('D3_GEOIP_UPDATE_ITEMINSTALL');
}
/**
* @return bool
* @throws oxConnectionException
*/
public function checkUnvalidGeoIpItems()
{
$sCheckQuery = 'SELECT COUNT(*) FROM (
SELECT d3ip FROM d3geoip WHERE d3ip NOT LIKE "%.%" OR d3ip NOT LIKE "%:%" OR D3STARTIPBIN = "" LIMIT 1
) AS iptmp;';
return (bool) oxDb::getDb()->getOne($sCheckQuery);
}
/**
* @return bool
*/
public function updateUnvalidGeoIpItems()
{
return $this->_confirmMessage('D3_GEOIP_UPDATE_ITEMUPDATE');
}
/**
* @return bool
*/

View File

@ -66,6 +66,12 @@ $aLang = array(
'D3_GEOIP_UPDATE_ITEMINSTALL' => 'Die umfangreiche IP-Liste kann leider nicht über die '.
'automatische Installation eingebunden werden. Bitte installieren Sie diese manuell. '.PHP_EOL.PHP_EOL.
'Laden Sie bitte die aktuellen CSV-Daten des Anbieters Maxmind. In "setup+doku/importCSVtoMySQL" des Modulpaketes finden Sie weitere Informationen und die erforderlichen Datenbank-Befehle, um die nötigen Daten zu generieren.'.PHP_EOL.PHP_EOL.
'Alternativ finden Sie die erforderlichen Daten im Installationspaket des Moduls unter "setup+doku/geoip-data_*". '.PHP_EOL.PHP_EOL.
'Führen Sie die SQL-Datei(en) bitte in Ihrer Datenbank aus.',
'Alternativ finden Sie die erforderlichen Daten im Installationspaket des Moduls unter "setup+doku/geoip-data_*.sql" oder als handlichere SQL-Dateien unter "setup+doku/geoip_data_parts_*/". '.PHP_EOL.PHP_EOL.
'Sie benötigen entweder die Komplettdateien oder die Sammlung kleinerer Daten. Führen Sie die SQL-Datei(en) bitte in Ihrer Datenbank aus.',
'D3_GEOIP_UPDATE_ITEMUPDATE' => 'Durch die Datenbankaktualisieren ist es notwendig geworden, die IP-Liste zu aktualisieren. Die umfangreiche IP-Liste kann leider nicht über die '.
'automatische Installation eingebunden werden. Bitte installieren Sie diese manuell. '.PHP_EOL.PHP_EOL.
'Laden Sie bitte die aktuellen CSV-Daten des Anbieters Maxmind. In "setup+doku/importCSVtoMySQL" des Modulpaketes finden Sie weitere Informationen und die erforderlichen Datenbank-Befehle, um die nötigen Daten zu generieren.'.PHP_EOL.PHP_EOL.
'Alternativ finden Sie die erforderlichen Daten im Installationspaket des Moduls unter "setup+doku/geoip-data_*.sql" oder als handlichere SQL-Dateien unter "setup+doku/geoip_data_parts_*/". '.PHP_EOL.PHP_EOL.
'Sie benötigen entweder die Komplettdateien oder die Sammlung kleinerer Daten. Führen Sie die SQL-Datei(en) bitte in Ihrer Datenbank aus.',
);