I'm trying to make local module to add 1 field to my category admin. I checked 7 times and everyghing looks good. I don't know why but module installer is not starting. I used This Tutorial

My file path: app/etc/modules/Bottom_Name.xml

  <?xml version="1.0" encoding="UTF-8"?>

Insie file app/code/local/Bottom_Name/etc/config.xml

<?xml version="1.0" encoding="UTF-8"?>
            <!-- Make sure that the version number matches the filename on your install script! -->
                    <!-- This next line is absolutely critical so that we call the appropriate setup class -->

And app/code/local/Bottom_Name/sql/bottom_name_setup/mysql4-install-0.1.0.php

Mage::log('Custom Name install start');
$installer = $this;

 * This is an entity associated with catalog_category
 * @var  integer
$entityTypeId     = $installer->getEntityTypeId('catalog_category');

 * Use the default attribute set for catalog_category -- this refers to the table `eav_attribute_set`
 * In my case, it's 3, but this function should automatically get that for you.
 * @var integer
$attributeSetId   = $installer->getDefaultAttributeSetId($entityTypeId);

 * This determines what group (tab) that the field will be placed. "General Information"
 * is the default tab, and I'm okay with this, but see `eav_attribute_group` for other
 * groups
 * @var integer
$attributeGroupId = $installer->getDefaultAttributeGroupId($entityTypeId, $attributeSetId);

 * Let's set up our attribute, customize the type as needed (e.g. int, varchar, decimal)
 * Note where I've used `internal_title` and change to your variable.
$installer->addAttribute('catalog_category', 'internal_title',  array(
    'type'     => 'varchar', /* Type - see eav_entity_* for the different types */
    'label'    => 'Nazwa Na stronie (prezentowana w dolnych kafelkach)', /* Your label */
    'input'    => 'text', /* This refers to the type of form field should display*/
    'global'   => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_STORE,
    'visible'           => TRUE,
    'required'          => FALSE,
    'user_defined'      => FALSE,
    'default'           => ''

 * Now, add the attribute to the proper attribute group - again, replace the variable title
 * with yours.
    '2' /* Refers to the sort order of fields - see `eav_entity_attribute` for reference on the location of other fields.  I want this right below the active field, so 2 works for me.*/


And My core_resource table

  • Does your module already have an entry in the core_resource table?
    – pspahn
    May 8, 2015 at 22:14
  • @pspahn I added in my post my core_resource table
    – woj_jas
    May 8, 2015 at 22:33

2 Answers 2


The main culprits of an install script not running:

  1. Typo or something incorrect in XML config.
  2. Install script was added sometime after module was installed and it never runs because core_resource already has an entry for the module.
  3. You're not emptying <webroot>/var/cache
  4. Incorrect file/directory names.

Your path of app/code/local/Bottom_Name should be app/code/local/Bottom/Name

  • 1. I'm sure that xml is correct 2. You can see that core_resource is empty of my module 3. I deleted var cache several times
    – woj_jas
    May 8, 2015 at 22:51
  • I changed path of app/code/local and works like charm. Thank you my friend !
    – woj_jas
    May 9, 2015 at 6:40

I realise it wasn't the solution in your case (and that your issue was resolved over 5 years ago!) but I found this question when having the same problem, and the issue for me was something slightly different, so I thought I'd share in case it's of any use to anyone:

The resource name and the SQL directory name must match.

I had this in my XML (names altered to match the question, to avoid confusion)...


...but the directory was Bottom/Name/sql/name_setup. Point 4 in the answer given by @pspahn set me in the right direction, and after renaming this to Bottom/Name/sql/bottom_name_setup (and removing the corresponding entry from core_resource, and clearing the cache) it worked.

Your Answer

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

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