J'ai une question, récemment je développais un module avec beaucoup de tables dans la base de données, et le concept changeait souvent, donc il fallait changer les tables existantes dans la base de données, et j'ai remarqué une différence dans la création de script de création de table et la mise à niveau de table. Voici. Regardez la création du code de table ci-dessous:
$table = $installer->getConnection()
->newTable($installer->getTable('module/table'))
->addColumn('id', Varien_Db_Ddl_Table::TYPE_INTEGER, 9, array(
'nullable' => false,
'primary' => true,
'identity' => true,
'auto_increment' => true
)
);
la fonction newTable () renvoie une instance de Varien_Db_Ddl_Table Et la mise à niveau du script de table utilise une manière différente pour ajouter une nouvelle colonne à la table existante, jetez un œil:
$installer->getConnection()
->addColumn($tableName, 'test', array(
'nullable' => false,
'length' => 9,
'type' => Varien_Db_Ddl_Table::TYPE_INTEGER,
'comment' => 'Test Field'
)
)
ces deux fonctions addColumn sont différentes et ce sont aussi des méthodes de classes différentes, et elles me rendent triste à chaque fois que je dois changer de syntaxe.
Donc, voici la question, est-il possible de mettre à jour la table existante en utilisant l'instance de la classe Varien_Db_Ddl_Table ?