59 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			SQL
		
	
	
	
	
	
			
		
		
	
	
			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;
 |