startSetup(); $installer->run(" CREATE TABLE `{$this->getTable('index/event')}` ( `event_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `type` varchar(64) NOT NULL, `entity` varchar(64) NOT NULL, `entity_pk` bigint(20) DEFAULT NULL, `created_at` datetime NOT NULL, `old_data` mediumtext, `new_data` mediumtext, PRIMARY KEY (`event_id`), UNIQUE KEY `IDX_UNIQUE_EVENT` (`type`,`entity`,`entity_pk`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE `{$this->getTable('index/process')}` ( `process_id` int(10) unsigned NOT NULL AUTO_INCREMENT, `indexer_code` varchar(32) NOT NULL, `status` enum('pending','working') NOT NULL DEFAULT 'pending', `started_at` datetime DEFAULT NULL, `ended_at` datetime DEFAULT NULL, PRIMARY KEY (`process_id`), UNIQUE KEY `IDX_CODE` (`indexer_code`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE `{$this->getTable('index/process_event')}` ( `process_id` int(10) unsigned NOT NULL, `event_id` bigint(20) unsigned NOT NULL, `status` enum('new','working','done','error') NOT NULL DEFAULT 'new', PRIMARY KEY (`process_id`,`event_id`), KEY `FK_INDEX_EVNT_PROCESS` (`event_id`), CONSTRAINT `FK_INDEX_EVNT_PROCESS` FOREIGN KEY (`event_id`) REFERENCES `{$this->getTable('index/event')}` (`event_id`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `FK_INDEX_PROCESS_EVENT` FOREIGN KEY (`process_id`) REFERENCES `{$this->getTable('index/process')}` (`process_id`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8; "); $installer->endSetup();