init.sql 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268
  1. CREATE TABLE IF NOT EXISTS `admin` (
  2. `username` VARCHAR(255) NOT NULL,
  3. `password` VARCHAR(255) NOT NULL,
  4. `superadmin` TINYINT(1) NOT NULL DEFAULT '0',
  5. `created` DATETIME NOT NULL DEFAULT '2016-01-01 00:00:00',
  6. `modified` DATETIME NOT NULL DEFAULT '2016-01-01 00:00:00',
  7. `active` TINYINT(1) NOT NULL DEFAULT '1',
  8. PRIMARY KEY (`username`)
  9. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
  10. CREATE TABLE IF NOT EXISTS `alias` (
  11. `address` VARCHAR(255) NOT NULL,
  12. `goto` TEXT NOT NULL,
  13. `domain` VARCHAR(255) NOT NULL,
  14. `created` DATETIME NOT NULL DEFAULT '2016-01-01 00:00:00',
  15. `modified` DATETIME NOT NULL DEFAULT '2016-01-01 00:00:00',
  16. `active` TINYINT(1) NOT NULL DEFAULT '1',
  17. PRIMARY KEY (`address`),
  18. KEY `domain` (`domain`)
  19. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
  20. CREATE TABLE IF NOT EXISTS `sender_acl` (
  21. `logged_in_as` VARCHAR(255) NOT NULL,
  22. `send_as` VARCHAR(255) NOT NULL
  23. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
  24. CREATE TABLE IF NOT EXISTS `spamalias` (
  25. `address` VARCHAR(255) NOT NULL,
  26. `goto` TEXT NOT NULL,
  27. `validity` INT(11) NOT NULL,
  28. PRIMARY KEY (`address`)
  29. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
  30. CREATE TABLE IF NOT EXISTS `alias_domain` (
  31. `alias_domain` VARCHAR(255) NOT NULL,
  32. `target_domain` VARCHAR(255) NOT NULL,
  33. `created` DATETIME NOT NULL DEFAULT '2016-01-01 00:00:00',
  34. `modified` DATETIME NOT NULL DEFAULT '2016-01-01 00:00:00',
  35. `active` TINYINT(1) NOT NULL DEFAULT '1',
  36. PRIMARY KEY (`alias_domain`),
  37. KEY `active` (`active`),
  38. KEY `target_domain` (`target_domain`)
  39. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
  40. CREATE TABLE IF NOT EXISTS `domain` (
  41. `domain` VARCHAR(255) NOT NULL,
  42. `description` VARCHAR(255),
  43. `aliases` INT(10) NOT NULL DEFAULT '0',
  44. `mailboxes` INT(10) NOT NULL DEFAULT '0',
  45. `maxquota` BIGINT(20) NOT NULL DEFAULT '0',
  46. `quota` BIGINT(20) NOT NULL DEFAULT '0',
  47. `transport` VARCHAR(255) NOT NULL,
  48. `backupmx` TINYINT(1) NOT NULL DEFAULT '0',
  49. `relay_all_recipients` TINYINT(1) NOT NULL DEFAULT '0',
  50. `created` DATETIME NOT NULL DEFAULT '2016-01-01 00:00:00',
  51. `modified` DATETIME NOT NULL DEFAULT '2016-01-01 00:00:00',
  52. `active` TINYINT(1) NOT NULL DEFAULT '1',
  53. PRIMARY KEY (`domain`)
  54. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
  55. CREATE TABLE IF NOT EXISTS `domain_admins` (
  56. `username` VARCHAR(255) NOT NULL,
  57. `domain` VARCHAR(255) NOT NULL,
  58. `created` DATETIME NOT NULL DEFAULT '2016-01-01 00:00:00',
  59. `active` TINYINT(1) NOT NULL DEFAULT '1',
  60. KEY `username` (`username`)
  61. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
  62. CREATE TABLE IF NOT EXISTS `mailbox` (
  63. `username` VARCHAR(255) NOT NULL,
  64. `password` VARCHAR(255) NOT NULL,
  65. `name` VARCHAR(255),
  66. `maildir` VARCHAR(255) NOT NULL,
  67. `quota` BIGINT(20) NOT NULL DEFAULT '0',
  68. `local_part` VARCHAR(255) NOT NULL,
  69. `domain` VARCHAR(255) NOT NULL,
  70. `created` DATETIME NOT NULL DEFAULT '2016-01-01 00:00:00',
  71. `modified` DATETIME NOT NULL DEFAULT '2016-01-01 00:00:00',
  72. `tls_enforce_in` TINYINT(1) NOT NULL DEFAULT '0',
  73. `tls_enforce_out` TINYINT(1) NOT NULL DEFAULT '0',
  74. `kind` VARCHAR(100) NOT NULL DEFAULT '',
  75. `multiple_bookings` TINYINT(1) NOT NULL DEFAULT '0',
  76. `wants_tagged_subject` TINYINT(1) NOT NULL DEFAULT '0',
  77. `active` TINYINT(1) NOT NULL DEFAULT '1',
  78. PRIMARY KEY (`username`),
  79. KEY `domain` (`domain`)
  80. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
  81. CREATE TABLE IF NOT EXISTS `quota2` (
  82. `username` VARCHAR(100) NOT NULL,
  83. `bytes` BIGINT(20) NOT NULL DEFAULT '0',
  84. `messages` INT(11) NOT NULL DEFAULT '0',
  85. PRIMARY KEY (`username`)
  86. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
  87. CREATE TABLE IF NOT EXISTS `filterconf` (
  88. `object` VARCHAR(100) NOT NULL DEFAULT '',
  89. `option` VARCHAR(50) NOT NULL DEFAULT '',
  90. `value` VARCHAR(100) NOT NULL DEFAULT '',
  91. `prefid` INT(11) NOT NULL AUTO_INCREMENT,
  92. PRIMARY KEY (`prefid`),
  93. KEY `object` (`object`)
  94. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
  95. CREATE TABLE IF NOT EXISTS `imapsync` (
  96. `id` INT NOT NULL AUTO_INCREMENT,
  97. `user2` VARCHAR(255) NOT NULL,
  98. `host1` VARCHAR(255) NOT NULL,
  99. `authmech1` ENUM('PLAIN','LOGIN','CRAM-MD5') DEFAULT 'PLAIN',
  100. `regextrans2` VARCHAR(255) DEFAULT '',
  101. `authmd51` TINYINT(1) NOT NULL DEFAULT 0,
  102. `domain2` VARCHAR(255) NOT NULL DEFAULT '',
  103. `subfolder2` VARCHAR(255) NOT NULL DEFAULT '',
  104. `user1` VARCHAR(255) NOT NULL,
  105. `password1` VARCHAR(255) NOT NULL,
  106. `exclude` VARCHAR(500) NOT NULL DEFAULT '',
  107. `maxage` SMALLINT NOT NULL DEFAULT '0',
  108. `mins_interval` VARCHAR(50) NOT NULL,
  109. `port1` SMALLINT NOT NULL,
  110. `enc1` ENUM('TLS','SSL','PLAIN') DEFAULT 'TLS',
  111. `delete2duplicates` TINYINT(1) NOT NULL DEFAULT '1',
  112. `returned_text` TEXT,
  113. `last_run` TIMESTAMP NULL DEFAULT NULL,
  114. `created` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  115. `modified` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  116. `active` TINYINT(1) NOT NULL DEFAULT '0',
  117. PRIMARY KEY (`id`)
  118. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
  119. DROP VIEW IF EXISTS grouped_mail_aliases;
  120. DROP VIEW IF EXISTS grouped_sender_acl;
  121. DROP VIEW IF EXISTS grouped_domain_alias_address;
  122. CREATE VIEW grouped_mail_aliases (username, aliases) AS
  123. SELECT goto, IFNULL(GROUP_CONCAT(address SEPARATOR ' '), '') AS address FROM alias
  124. WHERE address!=goto
  125. AND active = '1'
  126. AND address NOT LIKE '@%'
  127. GROUP BY goto;
  128. CREATE VIEW grouped_sender_acl (username, send_as) AS
  129. SELECT logged_in_as, IFNULL(GROUP_CONCAT(send_as SEPARATOR ' '), '') AS send_as FROM sender_acl
  130. WHERE send_as NOT LIKE '@%'
  131. GROUP BY logged_in_as;
  132. CREATE VIEW grouped_domain_alias_address (username, ad_alias) AS
  133. SELECT username, IFNULL(GROUP_CONCAT(local_part, '@', alias_domain SEPARATOR ' '), '') AS ad_alias FROM mailbox
  134. LEFT OUTER JOIN alias_domain on target_domain=domain GROUP BY username;
  135. CREATE TABLE IF NOT EXISTS sogo_acl (
  136. c_folder_id INTeger NOT NULL,
  137. c_object character varying(255) NOT NULL,
  138. c_uid character varying(255) NOT NULL,
  139. c_role character varying(80) NOT NULL
  140. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
  141. CREATE TABLE IF NOT EXISTS sogo_alarms_folder (
  142. c_path VARCHAR(255) NOT NULL,
  143. c_name VARCHAR(255) NOT NULL,
  144. c_uid VARCHAR(255) NOT NULL,
  145. c_recurrence_id INT(11) DEFAULT NULL,
  146. c_alarm_number INT(11) NOT NULL,
  147. c_alarm_date INT(11) NOT NULL
  148. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
  149. CREATE TABLE IF NOT EXISTS sogo_cache_folder (
  150. c_uid VARCHAR(255) NOT NULL,
  151. c_path VARCHAR(255) NOT NULL,
  152. c_parent_path VARCHAR(255) DEFAULT NULL,
  153. c_type TINYINT(3) unsigned NOT NULL,
  154. c_creationdate INT(11) NOT NULL,
  155. c_lastmodified INT(11) NOT NULL,
  156. c_version INT(11) NOT NULL DEFAULT '0',
  157. c_deleted TINYINT(4) NOT NULL DEFAULT '0',
  158. c_content longTEXT,
  159. PRIMARY KEY (c_uid,c_path)
  160. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
  161. CREATE TABLE IF NOT EXISTS sogo_folder_info (
  162. c_folder_id BIGINT(20) unsigned NOT NULL AUTO_INCREMENT,
  163. c_path VARCHAR(255) NOT NULL,
  164. c_path1 VARCHAR(255) NOT NULL,
  165. c_path2 VARCHAR(255) DEFAULT NULL,
  166. c_path3 VARCHAR(255) DEFAULT NULL,
  167. c_path4 VARCHAR(255) DEFAULT NULL,
  168. c_foldername VARCHAR(255) NOT NULL,
  169. c_location INTeger NULL,
  170. c_quick_location VARCHAR(2048) DEFAULT NULL,
  171. c_acl_location VARCHAR(2048) DEFAULT NULL,
  172. c_folder_type VARCHAR(255) NOT NULL,
  173. PRIMARY KEY (c_path),
  174. UNIQUE KEY c_folder_id (c_folder_id)
  175. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
  176. CREATE TABLE IF NOT EXISTS sogo_quick_appoINTment (
  177. c_folder_id INTeger NOT NULL,
  178. c_name character varying(255) NOT NULL,
  179. c_uid character varying(255) NOT NULL,
  180. c_startdate INTeger,
  181. c_enddate INTeger,
  182. c_cycleenddate INTeger,
  183. c_title character varying(1000) NOT NULL,
  184. c_participants TEXT,
  185. c_isallday INTeger,
  186. c_iscycle INTeger,
  187. c_cycleinfo TEXT,
  188. c_classification INTeger NOT NULL,
  189. c_isopaque INTeger NOT NULL,
  190. c_status INTeger NOT NULL,
  191. c_priority INTeger,
  192. c_location character varying(255),
  193. c_orgmail character varying(255),
  194. c_partmails TEXT,
  195. c_partstates TEXT,
  196. c_category character varying(255),
  197. c_sequence INTeger,
  198. c_component character varying(10) NOT NULL,
  199. c_nextalarm INTeger,
  200. c_description TEXT,
  201. CONSTRAINT sogo_quick_appoINTment_pkey PRIMARY KEY (c_folder_id, c_name)
  202. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
  203. CREATE TABLE IF NOT EXISTS sogo_quick_contact (
  204. c_folder_id INTeger NOT NULL,
  205. c_name character varying(255) NOT NULL,
  206. c_givenname character varying(255),
  207. c_cn character varying(255),
  208. c_sn character varying(255),
  209. c_screenname character varying(255),
  210. c_l character varying(255),
  211. c_mail character varying(255),
  212. c_o character varying(255),
  213. c_ou character varying(255),
  214. c_telephonenumber character varying(255),
  215. c_categories character varying(255),
  216. c_component character varying(10) NOT NULL,
  217. CONSTRAINT sogo_quick_contact_pkey PRIMARY KEY (c_folder_id, c_name)
  218. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
  219. CREATE TABLE IF NOT EXISTS sogo_sessions_folder (
  220. c_id VARCHAR(255) NOT NULL,
  221. c_value VARCHAR(255) NOT NULL,
  222. c_creationdate INT(11) NOT NULL,
  223. c_lastseen INT(11) NOT NULL,
  224. PRIMARY KEY (c_id)
  225. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
  226. CREATE TABLE IF NOT EXISTS sogo_store (
  227. c_folder_id INTeger NOT NULL,
  228. c_name character varying(255) NOT NULL,
  229. c_content mediumTEXT NOT NULL,
  230. c_creationdate INTeger NOT NULL,
  231. c_lastmodified INTeger NOT NULL,
  232. c_version INTeger NOT NULL,
  233. c_deleted INTeger,
  234. CONSTRAINT sogo_store_pkey PRIMARY KEY (c_folder_id, c_name)
  235. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
  236. CREATE TABLE IF NOT EXISTS sogo_user_profile (
  237. c_uid VARCHAR(255) NOT NULL,
  238. c_defaults TEXT,
  239. c_settings TEXT,
  240. PRIMARY KEY (c_uid)
  241. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
  242. REPLACE INTO admin (username, password, superadmin, created, modified, active) VALUES ('admin', '{SSHA256}K8eVJ6YsZbQCfuJvSUbaQRLr0HPLz5rC9IAp0PAFl0tmNDBkMDc0NDAyOTAxN2Rk', 1, NOW(), NOW(), 1);
  243. DELETE FROM domain_admins WHERE domain='all';
  244. INSERT INTO domain_admins (username, domain, created, active) VALUES ('admin', 'ALL', NOW(), 1);