Ajouter une colonne à citer table d'éléments
-
16-10-2019 - |
Question
Je veux ajouter une colonne à sales_flat_quote_item
(et ..._order_item
) table à travers un script d'installation, mais quand je vais à la table sales_flat_quote_item
(ou ..._order_item
) dans ma base de données - la colonne est pas là
La version du script d'installation est 0.0.1. Mon config.xml
est également 0.0.1.
J'ai effacé le cache. Je rafraîchi l'arrière-plan, de sorte que le script a RAN.
Les indices?
$installer = $this;
$installer->startSetup();
$installer->getConnection()->addColumn($installer->getTable('sales/quote_item'), 'print_sku', "varchar NOT NULL");
$installer->getConnection()->addColumn($installer->getTable('sales/order_item'), 'print_sku', "varchar NOT NULL");
$installer->endSetup();
La solution
Pour ajouter à la colonne sales_flat_quote_item
vous devrez écrire un script de mise à niveau pour cette suite étapes ci-dessous.
- Créer un module ou utilisez votre module personnalisé existant.
-
Modifier votre
config.xml
pour ajouter une ressource de configuration avec classeMage_Sales_Model_Resource_Setup
:<global> <resources> <your_module_setup> <setup> <module>Your_Module</module> <class>Mage_Sales_Model_Resource_Setup</class> </setup> </your_module_setup> </resources> </global>
-
Créer un
data/your_module_setup
de répertoire dans votre module -
Créer un script
data-install
oudata-upgrade
contenant le code suivant:$installer = $this; $installer->startSetup(); $installer->addAttribute( 'quote_item', /* order, quote, order_item, quote_item */ 'your_attribute_code', array( 'type' => 'varchar', /* int, varchar, text, decimal, datetime */ 'nullable' => false, /* default true */ 'grid' => false, /* or true if you wan't use this attribute on orders grid page */ ) ); $installer->endSetup();