Wie kann ich eine neue Spalte über ein Installationsskript zu einer vorhandenen Magento-Kerntabelle hinzufügen? (ohne Verwendung von reinem SQL)
Ich möchte die Magento-Methode verwenden, die Alias-Methoden verwendet, um ein Installationsskript zu erstellen.
Bisher habe ich nur wenige Tutorials besucht. Scheint aber nicht richtig zu funktionieren. Dieses StackOverflow ALTER TABLE im Magento-Setup-Skript ohne SQL- Antwort war meiner Frage etwas ähnlich. Aber was soll der Inhalt in die confg.xml
Datei des Moduls geschrieben werden? Muss ich nur ein Ressourcenmodell definieren, wären Modell- und Konfigurationsdaten ausreichend?
Der relevante Teil von config.xml
(meines Moduls) ist wie folgt.
<config>
. . .
<global>
<models>
<mymodule>
<class>Mynamespace_Mymodule_Model</class>
<resourceModel>mymodule_resource</resourceModel>
</mymodule>
<mymodule_resource>
<class>Mynamespace_Mymodule_Model_Resource</class>
</mymodule_resource>
</models>
<resources>
<mymodule_setup>
<setup>
<module>Mynamespace_Mymodule</module>
</setup>
<connection>
<use>core_setup</use>
</connection>
</mymodule_setup>
<mymodule_read>
<connection>
<use>core_read</use>
</connection>
</mymodule_read>
<mymodule_write>
<connection>
<use>core_write</use>
</connection>
</mymodule_write>
</resources>
. . . .
</config>
Und mein Installationsskript ist wie folgt.
$installer = $this;
$installer->startSetup();
$installer->getConnection()
->addColumn($installer->getTable('sales_flat_order'),'custom_value', Varien_Db_Ddl_Table::TYPE_VARCHAR, 255, array(
'nullable' => false,
), 'Title');
$installer->endSetup();
Aber ich erhalte den folgenden Fehler.
SQLSTATE [42S02]: Basistabelle oder Sicht nicht gefunden: 1146 Tabelle '255.sales_flat_order' existiert nicht
Jeder Vorschlag, dies zu beheben, wäre willkommen.
255
?