mailtrain/setup/sql/upgrade-00015.sql
2016-06-22 14:32:15 +03:00

59 lines
2.2 KiB
SQL

# Header section
# Define incrementing schema version number
SET @schema_version = '15';
# table for trigger definitions
CREATE TABLE `triggers` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL DEFAULT '',
`description` text,
`enabled` tinyint(4) unsigned NOT NULL DEFAULT '1',
`list` int(11) unsigned NOT NULL,
`source_campaign` int(11) unsigned DEFAULT NULL,
`rule` varchar(255) CHARACTER SET ascii NOT NULL DEFAULT 'column',
`column` varchar(255) CHARACTER SET ascii DEFAULT NULL,
`seconds` int(11) NOT NULL DEFAULT '0',
`dest_campaign` int(11) unsigned DEFAULT NULL,
`last_check` timestamp NULL DEFAULT NULL,
`created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `name` (`name`(191)),
KEY `source_campaign` (`source_campaign`),
KEY `dest_campaign` (`dest_campaign`),
KEY `list` (`list`),
KEY `column` (`column`),
KEY `active` (`enabled`),
KEY `last_check` (`last_check`),
CONSTRAINT `triggers_ibfk_1` FOREIGN KEY (`list`) REFERENCES `lists` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
# base table for triggered matches
CREATE TABLE `trigger` (
`list` int(11) unsigned NOT NULL,
`subscription` int(11) unsigned NOT NULL,
`created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`list`,`subscription`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
# table for yet queued messages ready to be sent
CREATE TABLE `queued` (
`campaign` int(11) unsigned NOT NULL,
`list` int(11) unsigned NOT NULL,
`subscriber` int(11) unsigned NOT NULL,
`source` varchar(255) DEFAULT NULL,
`created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`campaign`,`list`,`subscriber`),
KEY `created` (`created`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- {{#each tables.subscription}}
# Adds indexes for triggers
CREATE INDEX latest_open ON `{{this}}` (`latest_open`);
CREATE INDEX latest_click ON `{{this}}` (`latest_click`);
CREATE INDEX created ON `{{this}}` (`created`);
-- {{/each}}
# Footer section
LOCK TABLES `settings` WRITE;
INSERT INTO `settings` (`key`, `value`) VALUES('db_schema_version', @schema_version) ON DUPLICATE KEY UPDATE `value`=@schema_version;
UNLOCK TABLES;