Magento Datenbanktabelle ändern
Magento wird, wenn man zu einer Tabelle ein Feld hinzufügt, trotz abgeschaltetem Cache die Aufnahme von Daten in das neue Feld verweigern. Die meisten Magento-Entwickler werden diesen Umstand verzweifelt zur Kenntnis genommen haben. Verantwortlich hierfür ist die auf "true" gesetzte Variable Varien_Db_Adapter_Pdo_Mysql::_isDdlCacheAllowed.
Die Methode Varien_Db_Adapter_Pdo_Mysql::describeTable() wird die neue Tabellenstruktur nicht berücksichtigen und die alte Struktur aus dem Cache beziehen. Eine relativ simple Möglichkeit zu vermeiden, dass der Cache von Hand gelöscht werden muss, ist es folgende Zeile in das mysql4-upgrade Skript aufzunehmen.
- Mage::getSingleton('core/resource')
- ->getConnection('core_write')
- ->allowDdlCache()
- ->resetDdlCache(null,null);
Natürlich könnt Ihr aber den /var/cache Ordner einfach manuell leeren.