startSetup(); $installer->run(" -- DROP TABLE IF EXISTS {$this->getTable('eav_attribute')}; CREATE TABLE {$this->getTable('eav_attribute')} ( `attribute_id` smallint(5) unsigned NOT NULL auto_increment, `entity_type_id` smallint(5) unsigned NOT NULL default '0', `attribute_code` varchar(255) NOT NULL default '', `attribute_model` varchar(255) default NULL, `backend_model` varchar(255) default NULL, `backend_type` enum('static','datetime','decimal','int','text','varchar') NOT NULL default 'static', `backend_table` varchar(255) default NULL, `frontend_model` varchar(255) default NULL, `frontend_input` varchar(50) default NULL, `frontend_input_renderer` varchar(255) default NULL, `frontend_label` varchar(255) default NULL, `frontend_class` varchar(255) default NULL, `source_model` varchar(255) default NULL, `is_global` tinyint(1) unsigned NOT NULL default '1', `is_visible` tinyint(1) unsigned NOT NULL default '1', `is_required` tinyint(1) unsigned NOT NULL default '0', `is_user_defined` tinyint(1) unsigned NOT NULL default '0', `default_value` text, `is_searchable` tinyint(1) unsigned NOT NULL default '0', `is_filterable` tinyint(1) unsigned NOT NULL default '0', `is_comparable` tinyint(1) unsigned NOT NULL default '0', `is_visible_on_front` tinyint(1) unsigned NOT NULL default '0', `is_unique` tinyint(1) unsigned NOT NULL default '0', `apply_to` tinyint(3) unsigned NOT NULL default '0', `is_used_for_price_rules` tinyint(1) unsigned NOT NULL default '0', `is_filterable_in_search` tinyint(1) unsigned NOT NULL default '0', `use_in_super_product` tinyint(1) unsigned NOT NULL default '1', `used_in_product_listing` tinyint(1) unsigned NOT NULL default '0', `used_for_sort_by` tinyint(1) unsigned NOT NULL default '0', PRIMARY KEY (`attribute_id`), UNIQUE KEY `entity_type_id` (`entity_type_id`,`attribute_code`), KEY `IDX_USED_FOR_SORT_BY` (`entity_type_id`,`used_for_sort_by`), KEY `IDX_USED_IN_PRODUCT_LISTING` (`entity_type_id`,`used_in_product_listing`), CONSTRAINT `FK_eav_attribute` FOREIGN KEY (`entity_type_id`) REFERENCES `{$this->getTable('eav_entity_type')}` (`entity_type_id`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- DROP TABLE IF EXISTS {$this->getTable('eav_attribute_group')}; CREATE TABLE {$this->getTable('eav_attribute_group')} ( `attribute_group_id` smallint(5) unsigned NOT NULL auto_increment, `attribute_set_id` smallint(5) unsigned NOT NULL default '0', `attribute_group_name` varchar(255) character set latin1 NOT NULL default '', `sort_order` smallint(6) NOT NULL default '0', PRIMARY KEY (`attribute_group_id`), UNIQUE KEY `attribute_set_id` (`attribute_set_id`,`attribute_group_name`), KEY `attribute_set_id_2` (`attribute_set_id`,`sort_order`), CONSTRAINT `FK_eav_attribute_group` FOREIGN KEY (`attribute_set_id`) REFERENCES `{$this->getTable('eav_attribute_set')}` (`attribute_set_id`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- DROP TABLE IF EXISTS {$this->getTable('eav_attribute_option')}; CREATE TABLE {$this->getTable('eav_attribute_option')} ( `option_id` int(10) unsigned NOT NULL auto_increment, `attribute_id` smallint(5) unsigned NOT NULL default '0', `sort_order` smallint(5) unsigned NOT NULL default '0', PRIMARY KEY (`option_id`), KEY `FK_ATTRIBUTE_OPTION_ATTRIBUTE` (`attribute_id`), CONSTRAINT `FK_ATTRIBUTE_OPTION_ATTRIBUTE` FOREIGN KEY (`attribute_id`) REFERENCES `{$this->getTable('eav_attribute')}` (`attribute_id`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Attributes option (for source model)'; -- DROP TABLE IF EXISTS {$this->getTable('eav_attribute_option_value')}; CREATE TABLE {$this->getTable('eav_attribute_option_value')} ( `value_id` int(10) unsigned NOT NULL auto_increment, `option_id` int(10) unsigned NOT NULL default '0', `store_id` smallint(5) unsigned NOT NULL default '0', `value` varchar(255) NOT NULL default '', PRIMARY KEY (`value_id`), KEY `FK_ATTRIBUTE_OPTION_VALUE_OPTION` (`option_id`), KEY `FK_ATTRIBUTE_OPTION_VALUE_STORE` (`store_id`), CONSTRAINT `FK_ATTRIBUTE_OPTION_VALUE_OPTION` FOREIGN KEY (`option_id`) REFERENCES `{$this->getTable('eav_attribute_option')}` (`option_id`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `FK_ATTRIBUTE_OPTION_VALUE_STORE` FOREIGN KEY (`store_id`) REFERENCES `{$this->getTable('core_store')}` (`store_id`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Attribute option values per store'; -- DROP TABLE IF EXISTS {$this->getTable('eav_attribute_set')}; CREATE TABLE {$this->getTable('eav_attribute_set')} ( `attribute_set_id` smallint(5) unsigned NOT NULL auto_increment, `entity_type_id` smallint(5) unsigned NOT NULL default '0', `attribute_set_name` varchar(255) character set utf8 collate utf8_swedish_ci NOT NULL default '', `sort_order` smallint(6) NOT NULL default '0', PRIMARY KEY (`attribute_set_id`), UNIQUE KEY `entity_type_id` (`entity_type_id`,`attribute_set_name`), KEY `entity_type_id_2` (`entity_type_id`,`sort_order`), CONSTRAINT `FK_eav_attribute_set` FOREIGN KEY (`entity_type_id`) REFERENCES `{$this->getTable('eav_entity_type')}` (`entity_type_id`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- DROP TABLE IF EXISTS {$this->getTable('eav_entity')}; CREATE TABLE {$this->getTable('eav_entity')} ( `entity_id` int(10) unsigned NOT NULL auto_increment, `entity_type_id` smallint(8) unsigned NOT NULL default '0', `attribute_set_id` smallint(5) unsigned NOT NULL default '0', `increment_id` varchar(50) NOT NULL default '', `parent_id` int(11) unsigned NOT NULL default '0', `store_id` smallint(5) unsigned NOT NULL default '0', `created_at` datetime NOT NULL default '0000-00-00 00:00:00', `updated_at` datetime NOT NULL default '0000-00-00 00:00:00', `is_active` tinyint(1) unsigned NOT NULL default '1', PRIMARY KEY (`entity_id`), KEY `FK_ENTITY_ENTITY_TYPE` (`entity_type_id`), KEY `FK_ENTITY_STORE` (`store_id`), CONSTRAINT `FK_eav_entity` FOREIGN KEY (`entity_type_id`) REFERENCES `{$this->getTable('eav_entity_type')}` (`entity_type_id`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `FK_eav_entity_store` FOREIGN KEY (`store_id`) REFERENCES `{$this->getTable('core_store')}` (`store_id`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Entityies'; -- DROP TABLE IF EXISTS {$this->getTable('eav_entity_attribute')}; CREATE TABLE {$this->getTable('eav_entity_attribute')} ( `entity_attribute_id` int(10) unsigned NOT NULL auto_increment, `entity_type_id` smallint(5) unsigned NOT NULL default '0', `attribute_set_id` smallint(5) unsigned NOT NULL default '0', `attribute_group_id` smallint(5) unsigned NOT NULL default '0', `attribute_id` smallint(5) unsigned NOT NULL default '0', `sort_order` smallint(6) NOT NULL default '0', PRIMARY KEY (`entity_attribute_id`), UNIQUE KEY `attribute_set_id_2` (`attribute_set_id`,`attribute_id`), UNIQUE KEY `attribute_group_id` (`attribute_group_id`,`attribute_id`), KEY `attribute_set_id_3` (`attribute_set_id`,`sort_order`), KEY `FK_EAV_ENTITY_ATTRIVUTE_ATTRIBUTE` (`attribute_id`), CONSTRAINT `FK_EAV_ENTITY_ATTRIBUTE_ATTRIBUTE` FOREIGN KEY (`attribute_id`) REFERENCES `{$this->getTable('eav_attribute')}` (`attribute_id`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `FK_EAV_ENTITY_ATTRIBUTE_GROUP` FOREIGN KEY (`attribute_group_id`) REFERENCES `{$this->getTable('eav_attribute_group')}` (`attribute_group_id`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- DROP TABLE IF EXISTS {$this->getTable('eav_entity_datetime')}; CREATE TABLE {$this->getTable('eav_entity_datetime')} ( `value_id` int(11) NOT NULL auto_increment, `entity_type_id` smallint(5) unsigned NOT NULL default '0', `attribute_id` smallint(5) unsigned NOT NULL default '0', `store_id` smallint(5) unsigned NOT NULL default '0', `entity_id` int(10) unsigned NOT NULL default '0', `value` datetime NOT NULL default '0000-00-00 00:00:00', PRIMARY KEY (`value_id`), KEY `FK_ATTRIBUTE_DATETIME_ENTITY_TYPE` (`entity_type_id`), KEY `FK_ATTRIBUTE_DATETIME_ATTRIBUTE` (`attribute_id`), KEY `FK_ATTRIBUTE_DATETIME_STORE` (`store_id`), KEY `FK_ATTRIBUTE_DATETIME_ENTITY` (`entity_id`), KEY `value_by_attribute` (`attribute_id`,`value`), KEY `value_by_entity_type` (`entity_type_id`,`value`), CONSTRAINT `FK_EAV_ENTITY_DATETIME_ENTITY` FOREIGN KEY (`entity_id`) REFERENCES `{$this->getTable('eav_entity')}` (`entity_id`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `FK_EAV_ENTITY_DATETIME_ENTITY_TYPE` FOREIGN KEY (`entity_type_id`) REFERENCES `{$this->getTable('eav_entity_type')}` (`entity_type_id`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `FK_EAV_ENTITY_DATETIME_STORE` FOREIGN KEY (`store_id`) REFERENCES `{$this->getTable('core_store')}` (`store_id`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Datetime values of attributes'; -- DROP TABLE IF EXISTS {$this->getTable('eav_entity_decimal')}; CREATE TABLE {$this->getTable('eav_entity_decimal')} ( `value_id` int(11) NOT NULL auto_increment, `entity_type_id` smallint(5) unsigned NOT NULL default '0', `attribute_id` smallint(5) unsigned NOT NULL default '0', `store_id` smallint(5) unsigned NOT NULL default '0', `entity_id` int(10) unsigned NOT NULL default '0', `value` decimal(12,4) NOT NULL default '0.0000', PRIMARY KEY (`value_id`), KEY `FK_ATTRIBUTE_DECIMAL_ENTITY_TYPE` (`entity_type_id`), KEY `FK_ATTRIBUTE_DECIMAL_ATTRIBUTE` (`attribute_id`), KEY `FK_ATTRIBUTE_DECIMAL_STORE` (`store_id`), KEY `FK_ATTRIBUTE_DECIMAL_ENTITY` (`entity_id`), KEY `value_by_attribute` (`attribute_id`,`value`), KEY `value_by_entity_type` (`entity_type_id`,`value`), CONSTRAINT `FK_EAV_ENTITY_DECIMAL_ENTITY` FOREIGN KEY (`entity_id`) REFERENCES `{$this->getTable('eav_entity')}` (`entity_id`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `FK_EAV_ENTITY_DECIMAL_ENTITY_TYPE` FOREIGN KEY (`entity_type_id`) REFERENCES `{$this->getTable('eav_entity_type')}` (`entity_type_id`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `FK_EAV_ENTITY_DECIMAL_STORE` FOREIGN KEY (`store_id`) REFERENCES `{$this->getTable('core_store')}` (`store_id`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Decimal values of attributes'; -- DROP TABLE IF EXISTS {$this->getTable('eav_entity_int')}; CREATE TABLE {$this->getTable('eav_entity_int')} ( `value_id` int(11) NOT NULL auto_increment, `entity_type_id` smallint(5) unsigned NOT NULL default '0', `attribute_id` smallint(5) unsigned NOT NULL default '0', `store_id` smallint(5) unsigned NOT NULL default '0', `entity_id` int(10) unsigned NOT NULL default '0', `value` int(11) NOT NULL default '0', PRIMARY KEY (`value_id`), KEY `FK_ATTRIBUTE_INT_ENTITY_TYPE` (`entity_type_id`), KEY `FK_ATTRIBUTE_INT_ATTRIBUTE` (`attribute_id`), KEY `FK_ATTRIBUTE_INT_STORE` (`store_id`), KEY `FK_ATTRIBUTE_INT_ENTITY` (`entity_id`), KEY `value_by_attribute` (`attribute_id`,`value`), KEY `value_by_entity_type` (`entity_type_id`,`value`), CONSTRAINT `FK_EAV_ENTITY_INT_ENTITY` FOREIGN KEY (`entity_id`) REFERENCES `{$this->getTable('eav_entity')}` (`entity_id`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `FK_EAV_ENTITY_INT_ENTITY_TYPE` FOREIGN KEY (`entity_type_id`) REFERENCES `{$this->getTable('eav_entity_type')}` (`entity_type_id`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `FK_EAV_ENTITY_INT_STORE` FOREIGN KEY (`store_id`) REFERENCES `{$this->getTable('core_store')}` (`store_id`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Integer values of attributes'; -- DROP TABLE IF EXISTS {$this->getTable('eav_entity_store')}; CREATE TABLE {$this->getTable('eav_entity_store')} ( `entity_store_id` int(10) unsigned NOT NULL auto_increment, `entity_type_id` smallint(5) unsigned NOT NULL default '0', `store_id` smallint(5) unsigned NOT NULL default '0', `increment_prefix` varchar(20) NOT NULL default '', `increment_last_id` varchar(50) NOT NULL default '', PRIMARY KEY (`entity_store_id`), KEY `FK_eav_entity_store_entity_type` (`entity_type_id`), KEY `FK_eav_entity_store_store` (`store_id`), CONSTRAINT `FK_eav_entity_store_entity_type` FOREIGN KEY (`entity_type_id`) REFERENCES `{$this->getTable('eav_entity_type')}` (`entity_type_id`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `FK_eav_entity_store_store` FOREIGN KEY (`store_id`) REFERENCES `{$this->getTable('core_store')}` (`store_id`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- DROP TABLE IF EXISTS {$this->getTable('eav_entity_text')}; CREATE TABLE {$this->getTable('eav_entity_text')} ( `value_id` int(11) NOT NULL auto_increment, `entity_type_id` smallint(5) unsigned NOT NULL default '0', `attribute_id` smallint(5) unsigned NOT NULL default '0', `store_id` smallint(5) unsigned NOT NULL default '0', `entity_id` int(10) unsigned NOT NULL default '0', `value` text NOT NULL, PRIMARY KEY (`value_id`), KEY `FK_ATTRIBUTE_TEXT_ENTITY_TYPE` (`entity_type_id`), KEY `FK_ATTRIBUTE_TEXT_ATTRIBUTE` (`attribute_id`), KEY `FK_ATTRIBUTE_TEXT_STORE` (`store_id`), KEY `FK_ATTRIBUTE_TEXT_ENTITY` (`entity_id`), CONSTRAINT `FK_EAV_ENTITY_TEXT_ENTITY` FOREIGN KEY (`entity_id`) REFERENCES `{$this->getTable('eav_entity')}` (`entity_id`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `FK_EAV_ENTITY_TEXT_ENTITY_TYPE` FOREIGN KEY (`entity_type_id`) REFERENCES `{$this->getTable('eav_entity_type')}` (`entity_type_id`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `FK_EAV_ENTITY_TEXT_STORE` FOREIGN KEY (`store_id`) REFERENCES `{$this->getTable('core_store')}` (`store_id`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Text values of attributes'; -- DROP TABLE IF EXISTS {$this->getTable('eav_entity_type')}; CREATE TABLE {$this->getTable('eav_entity_type')} ( `entity_type_id` smallint(5) unsigned NOT NULL auto_increment, `entity_type_code` varchar(50) NOT NULL default '', `entity_table` varchar(255) NOT NULL default '', `value_table_prefix` varchar(255) NOT NULL default '', `entity_id_field` varchar(255) NOT NULL default '', `is_data_sharing` tinyint(4) unsigned NOT NULL default '1', `data_sharing_key` varchar(100) default 'default', `default_attribute_set_id` smallint(5) unsigned NOT NULL default '0', `increment_model` varchar(255) NOT NULL default '', `increment_per_store` tinyint(1) unsigned NOT NULL default '0', `increment_pad_length` tinyint(8) unsigned NOT NULL default '8', `increment_pad_char` char(1) NOT NULL default '0', PRIMARY KEY (`entity_type_id`), KEY `entity_name` (`entity_type_code`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- DROP TABLE IF EXISTS {$this->getTable('eav_entity_varchar')}; CREATE TABLE {$this->getTable('eav_entity_varchar')} ( `value_id` int(11) NOT NULL auto_increment, `entity_type_id` smallint(5) unsigned NOT NULL default '0', `attribute_id` smallint(5) unsigned NOT NULL default '0', `store_id` smallint(5) unsigned NOT NULL default '0', `entity_id` int(10) unsigned NOT NULL default '0', `value` varchar(255) NOT NULL default '', PRIMARY KEY (`value_id`), KEY `FK_ATTRIBUTE_VARCHAR_ENTITY_TYPE` (`entity_type_id`), KEY `FK_ATTRIBUTE_VARCHAR_ATTRIBUTE` (`attribute_id`), KEY `FK_ATTRIBUTE_VARCHAR_STORE` (`store_id`), KEY `FK_ATTRIBUTE_VARCHAR_ENTITY` (`entity_id`), KEY `value_by_attribute` (`attribute_id`,`value`), KEY `value_by_entity_type` (`entity_type_id`,`value`), CONSTRAINT `FK_EAV_ENTITY_VARCHAR_ENTITY` FOREIGN KEY (`entity_id`) REFERENCES `{$this->getTable('eav_entity')}` (`entity_id`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `FK_EAV_ENTITY_VARCHAR_ENTITY_TYPE` FOREIGN KEY (`entity_type_id`) REFERENCES `{$this->getTable('eav_entity_type')}` (`entity_type_id`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `FK_EAV_ENTITY_VARCHAR_STORE` FOREIGN KEY (`store_id`) REFERENCES `{$this->getTable('core_store')}` (`store_id`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Varchar values of attributes'; "); $installer->endSetup();