Lavorate attraverso this article per assicurarvi di non avere fraintendimenti su cosa fanno le risorse di installazione, come funzionano e come è possibile risolverle.
Una volta fatto questo, da tutto ciò che hai detto su questo problema filo Sembra che stai ricevendo la vostra risorsa "installato", ma che lo script di installazione non viene eseguito. La mia ipotesi è che il numero di versione è stato utilizzato nel
//0.0.1 is your version number
mysql4-install-0.0.1.php
non corrisponde con la versione del modulo
<modules>
<Nie_Nie>
<version>?.?.?</version>
</Nie_Nie>
</modules>
Questi dovrebbero corrispondere per l'esecuzione dello script. I think Magento è abbastanza intelligente da eseguire le versioni precedenti se le trova, ma il codice nelle risorse di installazione è il tipo che è difficile da seguire, quindi mi assicuro sempre che corrispondano.
Indipendentemente da ciò, ecco come puoi vedere quali file (s) Magento sta tentando di eseguire quando si esaurisce la risorsa di installazione. Elimina le voci da core_resource
relative al tuo modulo. Svuota la cache.Poi trovare le seguenti posizioni nel classe di installazione
File: app/code/core/Mage/Core/Model/Resource/Setup.php
protected function _modifyResourceDb($actionType, $fromVersion, $toVersion)
{
...
$sqlFilesDir = Mage::getModuleDir('sql', $modName).DS.$this->_resourceName;
if (!is_dir($sqlFilesDir) || !is_readable($sqlFilesDir)) {
return false;
}
...
$sqlDir->close();
if (empty($arrAvailableFiles)) {
return false;
}
...
$arrModifyFiles = $this->_getModifySqlFiles($actionType, $fromVersion, $toVersion, $arrAvailableFiles);
if (empty($arrModifyFiles)) {
return false;
}
e poi modificarli per aggiungere alcune eccezioni di debug temporanee
if (!is_dir($sqlFilesDir) || !is_readable($sqlFilesDir)) {
throw new Exception("$sqlFilesDir not found");
return false;
}
...
if (empty($arrAvailableFiles)) {
throw new Exception("No files found to run");
return false;
}
...
$arrModifyFiles = $this->_getModifySqlFiles($actionType, $fromVersion, $toVersion, $arrAvailableFiles);
if (empty($arrModifyFiles)) {
throw new Exception("No valid upgrade files found to run for ");
return false;
}
throw new Exception("If you're getting here, we have a file. Remove your exceptions here and place one in your installer to make sure it's the one you think it is.");
Ricarica la pagina e si otterrà il testo eccezione lamentarsi qualunque Magento non può trova. Questo dovrebbe essere sufficiente per aiutarti a rintracciare quale script di installazione Magento sta cercando di eseguire, ma non riuscendo a trovarlo. Basta ricordarsi di cancellare la riga del modulo in core_resource
e cancellare la cache. (Magento cache quali moduli devono verificare la presenza di un installare/aggiornare)
Se questo non funziona, iniziare a scavare nella logica di applyAllDataUpdates
e capire perché la classe non è compreso il vostro file di installazione.
Si prega di inviare la posizione del tuo script di installazione –
/app/code/local/Nie/Nie/sql/nie_setup/mysql4-install-0.0.1.php –
Assicurarsi che il caso del nome del modulo all'interno ha lo stesso case come nella configurazione delle risorse. Mi sono imbattuto in questo problema io stesso. –