Hallo zusammen,
ich versuche für mein Magento 1 Modul eine eigene Tabelle anzulegen. In der core_resource Tabelle sehe ich, dass die Installation durchgeführt wurde, jedoch sehe ich die Tabelle nicht.
Meine config.xml sieht so aus:
<?xml version="1.0"?> <config> <modules> <UF_MagentoAdminScriptQueue> <version>1.0.0</version> <active>true</active> <codePool>community</codePool> <depends> <Mage_Adminhtml /> </depends> <extension_name>MagentoAdminScriptQueue</extension_name> </UF_MagentoAdminScriptQueue> </modules> <global> <models> <magentoadminscriptqueue> <class>UF_MagentoAdminScriptQueue_Model</class> <resourceModel>uf_magentoadminscriptqueue_resource</resourceModel> </magentoadminscriptqueue> <uf_magentoadminscriptqueue_resource> <class>UF_MagentoAdminScriptQueue_Model_Resource</class> <entities> <queue> <table>uf_adminscriptqueue_queue</table> </queue> </entities> </uf_magentoadminscriptqueue_resource> </models> <resources> <magentoadminscriptqueue_setup> <setup> <module>UF_MagentoAdminScriptQueue</module> </setup> </magentoadminscriptqueue_setup> </resources> <blocks> <magentoadminscriptqueue> <class>UF_MagentoAdminScriptQueue_Block</class> </magentoadminscriptqueue> </blocks> <helpers> <magentoadminscriptqueue> <class>UF_MagentoAdminScriptQueue_Helper</class> </magentoadminscriptqueue> </helpers> </global> <admin> <routers> <adminhtml> <args> <modules> <magentoadminscriptqueue before="Mage_Adminhtml">UF_MagentoAdminScriptQueue_Adminhtml</magentoadminscriptqueue> </modules> </args> </adminhtml> </routers> </admin> </config>
Die Installationsdatei in sql/mysql4-install-1.0.0.php:
<?php $installer = $this; $installer->startSetup(); $queueTable = $installer->getTable('uf_adminscriptqueue/queue'); if ($installer->getConnection()->isTableExists($queueTable)) $installer->getConnection()->dropTable($queueTable); $table = $installer->getConnection()->newTable($queueTable) ->addColumn( 'entity_id', Varien_Db_Ddl_Table::TYPE_INTEGER, null, array( 'unsigned' => true, 'nullable' => false, 'primary' => true, 'identity' => true, ), 'Entity Id' ) ->addColumn( 'slug', Varien_Db_Ddl_Table::TYPE_VARCHAR, 40, array( 'default' => null, ), 'Slug' ) ->addColumn( 'name', Varien_Db_Ddl_Table::TYPE_VARCHAR, 40, array( 'default' => null, ), 'Name' ) ->addColumn( 'status', Varien_Db_Ddl_Table::TYPE_SMALLINT, null, array( 'unsigned' => true, 'nullable' => false, 'default' => UF_MagentoAdminScriptQueue_Model_Offer::STATUS_NOTRUNNING, ), 'Status' ) ->addColumn( 'last_run', Varien_Db_Ddl_Table::TYPE_DATETIME, null, array( 'default' => null, ), 'Created At' ) ->setComment('UF Script Queue Table'); $installer->getConnection()->createTable($table); $scripts = array( array( 'slug' => 'getCategories', 'name' => 'Get Categories' ), array( 'slug' => 'importCategories', 'name' => 'Import Categories' ), array( 'slug' => 'exportProductToCsv', 'name' => 'Export Products to CSV' ), array( 'slug' => 'updateMediaGallery', 'name' => 'Update Media Gallery' ), ); foreach ($scripts as $script) { Mage::getModel('uf_adminscriptqueue/queue') ->setData($script) ->save(); } $installer->endSetup();
Dann hab ich noch die UF_MagentoAdminScriptQueue_Model_Script im Model Verzeichnis:
<?php class UF_MagentoAdminScriptQueue_Model_Script extends Mage_Core_Model_Abstract { const STATUS_NOTRUNNING = 1; const STATUS_RUNNING = 2; const STATUS_INQUEUE = 3; /** * Init */ protected function _construct() { $this->_init('uf_adminscriptqueue/queue'); } /** * Processing object before save data * * @return Mage_Core_Model_Abstract */ protected function _beforeSave() { parent::_beforeSave(); } /** * Save queue related objects * * @return $this */ protected function _afterSave() { return parent::_afterSave(); } }
Den Code der Resource und der Collection spar ich mir, da dort auch nur der Constructor mit 'uf_adminscriptqueue/queue' drin steht.
Weiß jemand was mir fehlt, damit die Tabelle angelegt wird?
Liebe Grüße
Ralf