init.sql 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247
  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. `active` tinyint(1) NOT NULL DEFAULT '1',
  75. PRIMARY KEY (`username`),
  76. KEY `domain` (`domain`)
  77. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
  78. CREATE TABLE IF NOT EXISTS `quota2` (
  79. `username` varchar(100) NOT NULL,
  80. `bytes` bigint(20) NOT NULL DEFAULT '0',
  81. `messages` int(11) NOT NULL DEFAULT '0',
  82. PRIMARY KEY (`username`)
  83. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
  84. CREATE TABLE IF NOT EXISTS `filterconf` (
  85. `object` varchar(100) NOT NULL DEFAULT '',
  86. `option` varchar(50) NOT NULL DEFAULT '',
  87. `value` varchar(100) NOT NULL DEFAULT '',
  88. `prefid` int(11) NOT NULL AUTO_INCREMENT,
  89. PRIMARY KEY (`prefid`),
  90. KEY `object` (`object`)
  91. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
  92. DROP VIEW IF EXISTS grouped_mail_aliases;
  93. DROP VIEW IF EXISTS grouped_sender_acl;
  94. DROP VIEW IF EXISTS grouped_domain_alias_address;
  95. DROP VIEW IF EXISTS sogo_view;
  96. CREATE VIEW grouped_mail_aliases (username, aliases) AS
  97. SELECT goto, IFNULL(GROUP_CONCAT(address SEPARATOR ' '), '') AS address FROM alias
  98. WHERE address!=goto
  99. AND active = '1'
  100. AND address NOT LIKE '@%'
  101. GROUP BY goto;
  102. CREATE VIEW grouped_sender_acl (username, send_as) AS
  103. SELECT logged_in_as, IFNULL(GROUP_CONCAT(send_as SEPARATOR ' '), '') AS send_as FROM sender_acl
  104. WHERE send_as NOT LIKE '@%'
  105. GROUP BY logged_in_as;
  106. CREATE VIEW grouped_domain_alias_address (username, ad_alias) AS
  107. SELECT username, IFNULL(GROUP_CONCAT(local_part, '@', alias_domain SEPARATOR ' '), '') AS ad_alias FROM mailbox
  108. LEFT OUTER JOIN alias_domain on target_domain=domain GROUP BY username;
  109. CREATE VIEW sogo_view (c_uid, c_name, c_password, c_cn, mail, aliases, ad_aliases, senderacl, home) AS
  110. SELECT mailbox.username, mailbox.username, mailbox.password, mailbox.name, mailbox.username, IFNULL(ga.aliases, ''), IFNULL(gda.ad_alias, ''), IFNULL(gs.send_as, ''), CONCAT('/var/vmail/', maildir)
  111. FROM mailbox
  112. LEFT OUTER JOIN grouped_mail_aliases ga ON ga.username = mailbox.username
  113. LEFT OUTER JOIN grouped_sender_acl gs ON gs.username = mailbox.username
  114. LEFT OUTER JOIN grouped_domain_alias_address gda ON gda.username = mailbox.username
  115. WHERE mailbox.active = '1';
  116. CREATE TABLE IF NOT EXISTS sogo_acl (
  117. c_folder_id int(11) NOT NULL,
  118. c_object varchar(255) NOT NULL,
  119. c_uid varchar(255) NOT NULL,
  120. c_role varchar(80) NOT NULL,
  121. KEY sogo_acl_c_folder_id_idx (c_folder_id),
  122. KEY sogo_acl_c_uid_idx (c_uid)
  123. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
  124. CREATE TABLE IF NOT EXISTS sogo_alarms_folder (
  125. c_path varchar(255) NOT NULL,
  126. c_name varchar(255) NOT NULL,
  127. c_uid varchar(255) NOT NULL,
  128. c_recurrence_id int(11) DEFAULT NULL,
  129. c_alarm_number int(11) NOT NULL,
  130. c_alarm_date int(11) NOT NULL
  131. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
  132. CREATE TABLE IF NOT EXISTS sogo_cache_folder (
  133. c_uid varchar(255) NOT NULL,
  134. c_path varchar(255) NOT NULL,
  135. c_parent_path varchar(255) DEFAULT NULL,
  136. c_type tinyint(3) unsigned NOT NULL,
  137. c_creationdate int(11) NOT NULL,
  138. c_lastmodified int(11) NOT NULL,
  139. c_version int(11) NOT NULL DEFAULT '0',
  140. c_deleted tinyint(4) NOT NULL DEFAULT '0',
  141. c_content longtext,
  142. PRIMARY KEY (c_uid,c_path)
  143. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
  144. CREATE TABLE IF NOT EXISTS sogo_folder_info (
  145. c_folder_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  146. c_path varchar(255) NOT NULL,
  147. c_path1 varchar(255) NOT NULL,
  148. c_path2 varchar(255) DEFAULT NULL,
  149. c_path3 varchar(255) DEFAULT NULL,
  150. c_path4 varchar(255) DEFAULT NULL,
  151. c_foldername varchar(255) NOT NULL,
  152. c_location varchar(2048) DEFAULT NULL,
  153. c_quick_location varchar(2048) DEFAULT NULL,
  154. c_acl_location varchar(2048) DEFAULT NULL,
  155. c_folder_type varchar(255) NOT NULL,
  156. PRIMARY KEY (c_path),
  157. UNIQUE KEY c_folder_id (c_folder_id)
  158. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
  159. CREATE TABLE IF NOT EXISTS sogo_quick_appointment (
  160. c_folder_id int(11) NOT NULL,
  161. c_name varchar(255) NOT NULL,
  162. c_uid varchar(255) NOT NULL,
  163. c_startdate int(11) DEFAULT NULL,
  164. c_enddate int(11) DEFAULT NULL,
  165. c_cycleenddate int(11) DEFAULT NULL,
  166. c_title varchar(1000) NOT NULL,
  167. c_participants text,
  168. c_isallday int(11) DEFAULT NULL,
  169. c_iscycle int(11) DEFAULT NULL,
  170. c_cycleinfo text,
  171. c_classification int(11) NOT NULL,
  172. c_isopaque int(11) NOT NULL,
  173. c_status int(11) NOT NULL,
  174. c_priority int(11) DEFAULT NULL,
  175. c_location varchar(255) DEFAULT NULL,
  176. c_orgmail varchar(255) DEFAULT NULL,
  177. c_partmails text,
  178. c_partstates text,
  179. c_category varchar(255) DEFAULT NULL,
  180. c_sequence int(11) DEFAULT NULL,
  181. c_component varchar(10) NOT NULL,
  182. c_nextalarm int(11) DEFAULT NULL,
  183. c_description text,
  184. PRIMARY KEY (c_folder_id,c_name)
  185. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
  186. CREATE TABLE IF NOT EXISTS sogo_quick_contact (
  187. c_folder_id int(11) NOT NULL,
  188. c_name varchar(255) NOT NULL,
  189. c_givenname varchar(255) DEFAULT NULL,
  190. c_cn varchar(255) DEFAULT NULL,
  191. c_sn varchar(255) DEFAULT NULL,
  192. c_screenname varchar(255) DEFAULT NULL,
  193. c_l varchar(255) DEFAULT NULL,
  194. c_mail varchar(255) DEFAULT NULL,
  195. c_o varchar(255) DEFAULT NULL,
  196. c_ou varchar(255) DEFAULT NULL,
  197. c_telephonenumber varchar(255) DEFAULT NULL,
  198. c_categories varchar(255) DEFAULT NULL,
  199. c_component varchar(10) NOT NULL,
  200. PRIMARY KEY (c_folder_id,c_name)
  201. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
  202. CREATE TABLE IF NOT EXISTS sogo_sessions_folder (
  203. c_id varchar(255) NOT NULL,
  204. c_value varchar(255) NOT NULL,
  205. c_creationdate int(11) NOT NULL,
  206. c_lastseen int(11) NOT NULL,
  207. PRIMARY KEY (c_id)
  208. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
  209. CREATE TABLE IF NOT EXISTS sogo_store (
  210. c_folder_id int(11) NOT NULL,
  211. c_name varchar(255) NOT NULL DEFAULT '',
  212. c_content mediumtext NOT NULL,
  213. c_creationdate int(11) NOT NULL,
  214. c_lastmodified int(11) NOT NULL,
  215. c_version int(11) NOT NULL,
  216. c_deleted int(11) DEFAULT NULL,
  217. PRIMARY KEY (c_folder_id,c_name)
  218. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
  219. CREATE TABLE IF NOT EXISTS sogo_user_profile (
  220. c_uid varchar(255) NOT NULL,
  221. c_defaults text,
  222. c_settings text,
  223. PRIMARY KEY (c_uid)
  224. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;