Added initial support for trigger based automation
This commit is contained in:
parent
cc1c70d57f
commit
b16209f23e
36 changed files with 2025 additions and 263 deletions
|
@ -185,7 +185,7 @@ CREATE TABLE `settings` (
|
|||
`value` text NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `key` (`key`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=31 DEFAULT CHARSET=utf8mb4;
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=32 DEFAULT CHARSET=utf8mb4;
|
||||
INSERT INTO `settings` (`id`, `key`, `value`) VALUES (1,'smtp_hostname','localhost');
|
||||
INSERT INTO `settings` (`id`, `key`, `value`) VALUES (2,'smtp_port','465');
|
||||
INSERT INTO `settings` (`id`, `key`, `value`) VALUES (3,'smtp_encryption','TLS');
|
||||
|
@ -202,7 +202,7 @@ INSERT INTO `settings` (`id`, `key`, `value`) VALUES (13,'default_from','My Awes
|
|||
INSERT INTO `settings` (`id`, `key`, `value`) VALUES (14,'default_address','admin@example.com');
|
||||
INSERT INTO `settings` (`id`, `key`, `value`) VALUES (15,'default_subject','Test message');
|
||||
INSERT INTO `settings` (`id`, `key`, `value`) VALUES (16,'default_homepage','http://localhost:3000/');
|
||||
INSERT INTO `settings` (`id`, `key`, `value`) VALUES (17,'db_schema_version','14');
|
||||
INSERT INTO `settings` (`id`, `key`, `value`) VALUES (17,'db_schema_version','15');
|
||||
CREATE TABLE `subscription` (
|
||||
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`cid` varchar(255) CHARACTER SET ascii NOT NULL,
|
||||
|
@ -238,6 +238,31 @@ CREATE TABLE `templates` (
|
|||
PRIMARY KEY (`id`),
|
||||
KEY `name` (`name`(191))
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
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;
|
||||
CREATE TABLE `triggers` (
|
||||
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`name` varchar(255) NOT NULL DEFAULT '',
|
||||
`description` text,
|
||||
`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,
|
||||
`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`),
|
||||
CONSTRAINT `triggers_ibfk_1` FOREIGN KEY (`list`) REFERENCES `lists` (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
CREATE TABLE `tzoffset` (
|
||||
`tz` varchar(100) NOT NULL DEFAULT '',
|
||||
`offset` int(11) NOT NULL DEFAULT '0',
|
||||
|
|
59
setup/sql/upgrade-00015.sql
Normal file
59
setup/sql/upgrade-00015.sql
Normal file
|
@ -0,0 +1,59 @@
|
|||
# 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;
|
Loading…
Add table
Add a link
Reference in a new issue