init.sql 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263
  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. `user1` varchar(255) NOT NULL,
  101. `password1` varchar(255) NOT NULL,
  102. `exclude` VARCHAR(500) NOT NULL DEFAULT '',
  103. `mins_interval` VARCHAR(50) NOT NULL,
  104. `port1` SMALLINT NOT NULL,
  105. `enc1` ENUM('TLS','SSL','PLAIN') DEFAULT 'TLS',
  106. `delete2duplicates` TINYINT(1) NOT NULL DEFAULT '1',
  107. `returned_text` TEXT,
  108. `last_run` TIMESTAMP NULL DEFAULT NULL,
  109. `created` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  110. `modified` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  111. `active` TINYINT(1) NOT NULL DEFAULT '0',
  112. PRIMARY KEY (`id`)
  113. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
  114. DROP VIEW IF EXISTS grouped_mail_aliases;
  115. DROP VIEW IF EXISTS grouped_sender_acl;
  116. DROP VIEW IF EXISTS grouped_domain_alias_address;
  117. CREATE VIEW grouped_mail_aliases (username, aliases) AS
  118. SELECT goto, IFNULL(GROUP_CONCAT(address SEPARATOR ' '), '') AS address FROM alias
  119. WHERE address!=goto
  120. AND active = '1'
  121. AND address NOT LIKE '@%'
  122. GROUP BY goto;
  123. CREATE VIEW grouped_sender_acl (username, send_as) AS
  124. SELECT logged_in_as, IFNULL(GROUP_CONCAT(send_as SEPARATOR ' '), '') AS send_as FROM sender_acl
  125. WHERE send_as NOT LIKE '@%'
  126. GROUP BY logged_in_as;
  127. CREATE VIEW grouped_domain_alias_address (username, ad_alias) AS
  128. SELECT username, IFNULL(GROUP_CONCAT(local_part, '@', alias_domain SEPARATOR ' '), '') AS ad_alias FROM mailbox
  129. LEFT OUTER JOIN alias_domain on target_domain=domain GROUP BY username;
  130. CREATE TABLE IF NOT EXISTS sogo_acl (
  131. c_folder_id integer NOT NULL,
  132. c_object character varying(255) NOT NULL,
  133. c_uid character varying(255) NOT NULL,
  134. c_role character varying(80) NOT NULL
  135. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
  136. CREATE TABLE IF NOT EXISTS sogo_alarms_folder (
  137. c_path varchar(255) NOT NULL,
  138. c_name varchar(255) NOT NULL,
  139. c_uid varchar(255) NOT NULL,
  140. c_recurrence_id int(11) DEFAULT NULL,
  141. c_alarm_number int(11) NOT NULL,
  142. c_alarm_date int(11) NOT NULL
  143. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
  144. CREATE TABLE IF NOT EXISTS sogo_cache_folder (
  145. c_uid varchar(255) NOT NULL,
  146. c_path varchar(255) NOT NULL,
  147. c_parent_path varchar(255) DEFAULT NULL,
  148. c_type tinyint(3) unsigned NOT NULL,
  149. c_creationdate int(11) NOT NULL,
  150. c_lastmodified int(11) NOT NULL,
  151. c_version int(11) NOT NULL DEFAULT '0',
  152. c_deleted tinyint(4) NOT NULL DEFAULT '0',
  153. c_content longtext,
  154. PRIMARY KEY (c_uid,c_path)
  155. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
  156. CREATE TABLE IF NOT EXISTS sogo_folder_info (
  157. c_folder_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  158. c_path varchar(255) NOT NULL,
  159. c_path1 varchar(255) NOT NULL,
  160. c_path2 varchar(255) DEFAULT NULL,
  161. c_path3 varchar(255) DEFAULT NULL,
  162. c_path4 varchar(255) DEFAULT NULL,
  163. c_foldername varchar(255) NOT NULL,
  164. c_location integer NULL,
  165. c_quick_location varchar(2048) DEFAULT NULL,
  166. c_acl_location varchar(2048) DEFAULT NULL,
  167. c_folder_type varchar(255) NOT NULL,
  168. PRIMARY KEY (c_path),
  169. UNIQUE KEY c_folder_id (c_folder_id)
  170. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
  171. CREATE TABLE IF NOT EXISTS sogo_quick_appointment (
  172. c_folder_id integer NOT NULL,
  173. c_name character varying(255) NOT NULL,
  174. c_uid character varying(255) NOT NULL,
  175. c_startdate integer,
  176. c_enddate integer,
  177. c_cycleenddate integer,
  178. c_title character varying(1000) NOT NULL,
  179. c_participants text,
  180. c_isallday integer,
  181. c_iscycle integer,
  182. c_cycleinfo text,
  183. c_classification integer NOT NULL,
  184. c_isopaque integer NOT NULL,
  185. c_status integer NOT NULL,
  186. c_priority integer,
  187. c_location character varying(255),
  188. c_orgmail character varying(255),
  189. c_partmails text,
  190. c_partstates text,
  191. c_category character varying(255),
  192. c_sequence integer,
  193. c_component character varying(10) NOT NULL,
  194. c_nextalarm integer,
  195. c_description text,
  196. CONSTRAINT sogo_quick_appointment_pkey PRIMARY KEY (c_folder_id, c_name)
  197. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
  198. CREATE TABLE IF NOT EXISTS sogo_quick_contact (
  199. c_folder_id integer NOT NULL,
  200. c_name character varying(255) NOT NULL,
  201. c_givenname character varying(255),
  202. c_cn character varying(255),
  203. c_sn character varying(255),
  204. c_screenname character varying(255),
  205. c_l character varying(255),
  206. c_mail character varying(255),
  207. c_o character varying(255),
  208. c_ou character varying(255),
  209. c_telephonenumber character varying(255),
  210. c_categories character varying(255),
  211. c_component character varying(10) NOT NULL,
  212. CONSTRAINT sogo_quick_contact_pkey PRIMARY KEY (c_folder_id, c_name)
  213. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
  214. CREATE TABLE IF NOT EXISTS sogo_sessions_folder (
  215. c_id varchar(255) NOT NULL,
  216. c_value varchar(255) NOT NULL,
  217. c_creationdate int(11) NOT NULL,
  218. c_lastseen int(11) NOT NULL,
  219. PRIMARY KEY (c_id)
  220. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
  221. CREATE TABLE IF NOT EXISTS sogo_store (
  222. c_folder_id integer NOT NULL,
  223. c_name character varying(255) NOT NULL,
  224. c_content mediumtext NOT NULL,
  225. c_creationdate integer NOT NULL,
  226. c_lastmodified integer NOT NULL,
  227. c_version integer NOT NULL,
  228. c_deleted integer,
  229. CONSTRAINT sogo_store_pkey PRIMARY KEY (c_folder_id, c_name)
  230. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
  231. CREATE TABLE IF NOT EXISTS sogo_user_profile (
  232. c_uid varchar(255) NOT NULL,
  233. c_defaults text,
  234. c_settings text,
  235. PRIMARY KEY (c_uid)
  236. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
  237. REPLACE INTO admin (username, password, superadmin, created, modified, active) VALUES ('admin', '{SSHA256}K8eVJ6YsZbQCfuJvSUbaQRLr0HPLz5rC9IAp0PAFl0tmNDBkMDc0NDAyOTAxN2Rk', 1, NOW(), NOW(), 1);
  238. DELETE FROM domain_admins WHERE domain='all';
  239. INSERT INTO domain_admins (username, domain, created, active) VALUES ('admin', 'ALL', NOW(), 1);