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