1

I am learning magento, trying to add a custom module where one can upload .xls files and then manage them(basic CRUD operations). Then the .xls files can be executed and inserted into the products db.

This is the error I get in the magento dashboard

SQLSTATE[42S02]: Base table or view not found: 1146 Table 'magento.wine' doesn't exist, query was: SELECT COUNT(*) FROM `wine` AS `main_table

As far as I understand, the table wasn't found, which means that my install wasn't ran. This is my Mymodule/Wine/sql/wine_setup/install-0.1.0.php

<?php

$installer = $this;

$installer->startSetup();

$table = $installer->getConnection()
    ->newTable($installer->getTable('wine'))
    ->addColumn('wine_id', Varien_Db_Ddl_Table::TYPE_INTEGER, 10, array(
            'auto_increment' => true,
            'unsigned' => true,
            'nullable' => false,
            'primary' => true
        ), 'Wine Id')
    ->addColumn('name', Varien_Db_Ddl_Table::TYPE_VARCHAR, 255, array(
            'nullable' => false,
        ), 'Name')
    ->addColumn('status', Varien_Db_Ddl_Table::TYPE_INTEGER, 1, array(
            'nullable' => false,
        ), 'Status')
    ->addColumn('created_at', Varien_Db_Ddl_Table::TYPE_DATETIME, null, array(
            'nullable' => false,
        ), 'Created At')
    ->addColumn('executed_at', Varien_Db_Ddl_Table::TYPE_DATETIME, null, array(
            'nullable' => false,
        )
    )
    ->setOption('type', 'InnoDB')
    ->setOption('charset', 'utf8')
    ->setComment('Wine .xls Files Table');
$installer->getConnection()->createTable($table);

$installer->endSetup();

The config.xml part related to Models/Resources:

<models>
    <wine>
        <class>Mymodule_Wine_Model</class>
        <resourceModel>wine_mysql4</resourceModel>
    </wine>
    <wine_mysql4>
        <class>Mymodule_Wine_Model_Resource</class>
        <entities>
            <wine>
                <table>wine</table>
            </wine>
        </entities>
    </wine_mysql4>
</models>
<resources>
    <wine_setup>
        <setup>
            <module>Mymodule_Wine</module>
        </setup>
        <connection>
            <use>core_setup</use>
        </connection>
    </wine_setup>
    <wine_write>
        <connection>
            <use>core_connection</use>
        </connection>
    </wine_write>
    <wine_read>
        <connection>
            <use>core_read</use>
        </connection>
    </wine_read>
</resources>

My model located in Mymodule/Wine/Model/Wine.php

<?php

class Mymodule_Wine_Model_Wine extends Mage_Core_Model_Abstract
{
    public function _construct()
    {
        parent::_construct();
        $this->_init('wine/wine');
    }
}

Mymodule/Wine/Model/Resource/Wine.php

<?php

class Mymodule_Wine_Model_Resource_Wine extends Mage_Core_Model_Resource_Db_Abstract
{
    public function _construct()
    {
        $this->_init('wine/wine', 'wine_id');
    }
}

Mymodule/Wine/Model/Resource/Wine/Collection.php

<?php

class Mymodule_Wine_Model_Resource_Wine_Collection extends Mage_Core_Model_Resource_Db_Collection_Abstract
{
    public function _construct()
    {
        // parent::_construct();
        $this->_init('wine/wine');
    }
}

The error only occurs only if this line is present:

<?php

class Mymodule_Wine_Adminhtml_WineController extends Mage_Adminhtml_Controller_Action
{
    protected function _initAction()
    {
        $this->loadLayout()
              ->_setActiveMenu('wine/items')
              ->_addBreadcrumb(Mage::helper('adminhtml')->__('Manage .xls Files'), Mage::helper('adminhtml')->__('Manage .xls Files'));
        return $this;
    }

    public function indexAction()
    {
        $this->_initAction();
        >> $this->_addContent($this->getLayout()->createBlock('wine/adminhtml_wine')); <<== without this line I can access the backend, but i need the block to be inserted in the dashboard
        $this->renderLayout();
    }
}

1 Answer 1

0

check the module version in config.xml and the check module entry in core_resource table if it is there remove it.

<modules>
        <Spacename_Modulename>
            <version>0.1.0</version>
        </Spacename_Modulename>
</modules>
3
  • My module is not present in the table. Sep 28, 2016 at 9:35
  • @RaduDascălu there will be entry of this wine_setup check that Sep 28, 2016 at 9:36
  • yes I am sorry, didn't go to the last page :D I've found it. Removed it and everything worked, thank you sir, you are a life saver. Basically couldn't figure it out by myself since all my module files looked fine. Sep 28, 2016 at 9:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.