Magento ne veut pas stocker une donnée dans un champ créé récemment

Magento met en cache plein de choses. J'ai découvert aujourd'hui que même les structures de tables étaient mises en cache.
Sûrement bien pour les perfs, mais pas pratique tout le temps.

Aujourd'hui, j'ai ajouté un champ dans une table, par le biais d'un setup. En local, aucun souci, le champ est ajouté, les insertions s'effectuent sans problème.

Voici mon setup.

$installer = $this;
$installer->startSetup();
$installer->run("ALTER TABLE  ADD nouveau_champ int(10) unsigned not null;");
$installer->endSetup();

Tout se passe bien, on balance sur la plateforme de test. Tout ce que j'envoie dans nouveau_champ reste à 0.

Je n'ai pas du chercher longtemps (et heureusement, car je n'aurais pas trouvé rapidement), un collègue ayant déjà eu le souci. Il faut vider le fameux cache. Et ça se fait comme ça dans mon setup :

$installer->getConnection()->resetDdlCache($installer->getTable('module/objet'));

Avec ça, c'est tout bon, tout s'enregistre.

Vus : 295
Publié par Nicolas Lœuillet : 125