1: | <?php |
2: | |
3: | use Illuminate\Database\Migrations\Migration; |
4: | use Illuminate\Database\Schema\Blueprint; |
5: | use Illuminate\Database\Capsule\Manager as Capsule; |
6: | |
7: | class CreateTables extends Migration |
8: | { |
9: | |
10: | |
11: | |
12: | |
13: | |
14: | public function up() |
15: | { |
16: | |
17: | |
18: | |
19: | $sPrefix = Capsule::connection()->getTablePrefix(); |
20: | |
21: | $sSql = str_replace( |
22: | "%PREFIX%", |
23: | $sPrefix, |
24: | "CREATE TABLE IF NOT EXISTS `%PREFIX%adav_addressbooks` ( |
25: | id INT(11) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, |
26: | principaluri VARBINARY(255), |
27: | displayname VARCHAR(255), |
28: | uri VARBINARY(255), |
29: | description TEXT, |
30: | synctoken INT(11) UNSIGNED NOT NULL DEFAULT '1', |
31: | UNIQUE(principaluri(100), uri(100)) |
32: | ) ENGINE=InnoDB DEFAULT CHARSET=utf8;" |
33: | ); |
34: | Capsule::connection()->statement($sSql); |
35: | |
36: | $sSql = str_replace( |
37: | "%PREFIX%", |
38: | $sPrefix, |
39: | "CREATE TABLE IF NOT EXISTS `%PREFIX%adav_addressbookchanges` ( |
40: | id INT(11) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, |
41: | uri VARBINARY(255) NOT NULL, |
42: | synctoken INT(11) UNSIGNED NOT NULL, |
43: | addressbookid INT(11) UNSIGNED NOT NULL, |
44: | operation TINYINT(1) NOT NULL, |
45: | INDEX addressbookid_synctoken (addressbookid, synctoken) |
46: | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;" |
47: | ); |
48: | Capsule::connection()->statement($sSql); |
49: | |
50: | $sSql = str_replace( |
51: | "%PREFIX%", |
52: | $sPrefix, |
53: | "CREATE TABLE IF NOT EXISTS `%PREFIX%adav_cache` ( |
54: | `id` int(11) NOT NULL auto_increment, |
55: | `user` varchar(255) default NULL, |
56: | `calendaruri` varchar(255) default NULL, |
57: | `type` tinyint(4) default NULL, |
58: | `time` int(11) default NULL, |
59: | `starttime` int(11) default NULL, |
60: | `eventid` varchar(45) default NULL, |
61: | PRIMARY KEY (`id`) |
62: | ) ENGINE=InnoDB DEFAULT CHARSET=utf8;" |
63: | ); |
64: | Capsule::connection()->statement($sSql); |
65: | |
66: | $sSql = str_replace( |
67: | "%PREFIX%", |
68: | $sPrefix, |
69: | "CREATE TABLE IF NOT EXISTS `%PREFIX%adav_calendarinstances` ( |
70: | `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, |
71: | `calendarid` INT(10) UNSIGNED NOT NULL, |
72: | `principaluri` VARBINARY(100) NULL DEFAULT NULL, |
73: | `access` TINYINT(1) NOT NULL DEFAULT '1' COMMENT '1 = owner, 2 = read, 3 = readwrite', |
74: | `displayname` VARCHAR(100) NULL DEFAULT NULL, |
75: | `uri` VARBINARY(255) NULL DEFAULT NULL, |
76: | `description` TEXT NULL, |
77: | `calendarorder` INT(11) UNSIGNED NOT NULL DEFAULT '0', |
78: | `calendarcolor` VARBINARY(10) NULL DEFAULT NULL, |
79: | `timezone` TEXT NULL, |
80: | `transparent` TINYINT(1) NOT NULL DEFAULT '0', |
81: | `share_href` VARBINARY(100) NULL DEFAULT NULL, |
82: | `share_displayname` VARCHAR(100) NULL DEFAULT NULL, |
83: | `share_invitestatus` TINYINT(1) NOT NULL DEFAULT '2' COMMENT '1 = noresponse, 2 = accepted, 3 = declined, 4 = invalid', |
84: | `public` TINYINT(1) NOT NULL DEFAULT '0', |
85: | PRIMARY KEY (`id`), |
86: | UNIQUE INDEX `principaluri` (`principaluri`, `uri`), |
87: | UNIQUE INDEX `calendarid` (`calendarid`, `principaluri`), |
88: | UNIQUE INDEX `calendarid_2` (`calendarid`, `share_href`) |
89: | )ENGINE=InnoDB DEFAULT CHARSET=utf8;" |
90: | ); |
91: | Capsule::connection()->statement($sSql); |
92: | |
93: | $sSql = str_replace( |
94: | "%PREFIX%", |
95: | $sPrefix, |
96: | "CREATE TABLE IF NOT EXISTS `%PREFIX%adav_calendarobjects` ( |
97: | id INT(11) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, |
98: | calendardata MEDIUMBLOB, |
99: | uri VARBINARY(255), |
100: | calendarid INTEGER UNSIGNED NOT NULL, |
101: | lastmodified INT(11) UNSIGNED, |
102: | etag VARBINARY(32), |
103: | size INT(11) UNSIGNED NOT NULL, |
104: | componenttype VARBINARY(8), |
105: | firstoccurence INT(11) UNSIGNED, |
106: | lastoccurence INT(11) UNSIGNED, |
107: | uid VARBINARY(255), |
108: | UNIQUE(calendarid, uri) |
109: | ) ENGINE=InnoDB DEFAULT CHARSET=utf8;" |
110: | ); |
111: | Capsule::connection()->statement($sSql); |
112: | |
113: | $sSql = str_replace( |
114: | "%PREFIX%", |
115: | $sPrefix, |
116: | "CREATE TABLE IF NOT EXISTS `%PREFIX%adav_calendars` ( |
117: | `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, |
118: | `synctoken` INT(10) UNSIGNED NOT NULL DEFAULT '1', |
119: | `components` VARBINARY(21) NULL DEFAULT NULL, |
120: | PRIMARY KEY (`id`) |
121: | ) ENGINE=InnoDB DEFAULT CHARSET=utf8;" |
122: | ); |
123: | Capsule::connection()->statement($sSql); |
124: | |
125: | $sSql = str_replace( |
126: | "%PREFIX%", |
127: | $sPrefix, |
128: | "CREATE TABLE IF NOT EXISTS `%PREFIX%adav_calendarchanges` ( |
129: | id INT(11) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, |
130: | uri VARBINARY(255) NOT NULL, |
131: | synctoken INT(11) UNSIGNED NOT NULL, |
132: | calendarid INT(11) UNSIGNED NOT NULL, |
133: | operation TINYINT(1) NOT NULL, |
134: | INDEX calendarid_synctoken (calendarid, synctoken) |
135: | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;" |
136: | ); |
137: | Capsule::connection()->statement($sSql); |
138: | |
139: | $sSql = str_replace( |
140: | "%PREFIX%", |
141: | $sPrefix, |
142: | "CREATE TABLE IF NOT EXISTS `%PREFIX%adav_calendarsubscriptions` ( |
143: | id INT(11) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, |
144: | uri VARBINARY(255) NOT NULL, |
145: | principaluri VARBINARY(100) NOT NULL, |
146: | source TEXT, |
147: | displayname VARCHAR(100), |
148: | refreshrate VARCHAR(10), |
149: | calendarorder INT(11) UNSIGNED NOT NULL DEFAULT '0', |
150: | calendarcolor VARBINARY(10), |
151: | striptodos TINYINT(1) NULL, |
152: | stripalarms TINYINT(1) NULL, |
153: | stripattachments TINYINT(1) NULL, |
154: | lastmodified INT(11) UNSIGNED, |
155: | UNIQUE(principaluri, uri) |
156: | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;" |
157: | ); |
158: | Capsule::connection()->statement($sSql); |
159: | |
160: | $sSql = str_replace( |
161: | "%PREFIX%", |
162: | $sPrefix, |
163: | "CREATE TABLE IF NOT EXISTS `%PREFIX%adav_schedulingobjects` ( |
164: | id INT(11) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, |
165: | principaluri VARBINARY(255), |
166: | calendardata MEDIUMBLOB, |
167: | uri VARBINARY(255), |
168: | lastmodified INT(11) UNSIGNED, |
169: | etag VARBINARY(32), |
170: | size INT(11) UNSIGNED NOT NULL |
171: | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;" |
172: | ); |
173: | Capsule::connection()->statement($sSql); |
174: | |
175: | $sSql = str_replace( |
176: | "%PREFIX%", |
177: | $sPrefix, |
178: | "CREATE TABLE IF NOT EXISTS `%PREFIX%adav_cards` ( |
179: | id INT(11) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, |
180: | addressbookid INT(11) UNSIGNED NOT NULL, |
181: | carddata MEDIUMBLOB, |
182: | uri VARBINARY(255), |
183: | lastmodified INT(11) UNSIGNED, |
184: | etag VARBINARY(32), |
185: | size INT(11) UNSIGNED NOT NULL |
186: | ) ENGINE=InnoDB DEFAULT CHARSET=utf8;" |
187: | ); |
188: | Capsule::connection()->statement($sSql); |
189: | |
190: | $sSql = str_replace( |
191: | "%PREFIX%", |
192: | $sPrefix, |
193: | "CREATE TABLE IF NOT EXISTS `%PREFIX%adav_groupmembers` ( |
194: | `id` int(11) unsigned NOT NULL auto_increment, |
195: | `principal_id` int(11) unsigned NOT NULL, |
196: | `member_id` int(11) unsigned NOT NULL, |
197: | PRIMARY KEY (`id`), |
198: | UNIQUE KEY `%PREFIX%ADAV_GROUPMEMBERS_MEMBER_ID_PRINCIPAL_ID_INDEX` (`principal_id`,`member_id`) |
199: | ) ENGINE=InnoDB DEFAULT CHARSET=utf8;" |
200: | ); |
201: | Capsule::connection()->statement($sSql); |
202: | |
203: | $sSql = str_replace( |
204: | "%PREFIX%", |
205: | $sPrefix, |
206: | "CREATE TABLE IF NOT EXISTS `%PREFIX%adav_locks` ( |
207: | id INTEGER UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, |
208: | owner VARCHAR(100), |
209: | timeout INTEGER UNSIGNED, |
210: | created INTEGER, |
211: | token VARBINARY(100), |
212: | scope TINYINT, |
213: | depth TINYINT, |
214: | uri VARBINARY(1000), |
215: | INDEX(token), |
216: | INDEX(uri(100)) |
217: | ) ENGINE=InnoDB DEFAULT CHARSET=utf8;" |
218: | ); |
219: | Capsule::connection()->statement($sSql); |
220: | |
221: | $sSql = str_replace( |
222: | "%PREFIX%", |
223: | $sPrefix, |
224: | "CREATE TABLE IF NOT EXISTS `%PREFIX%adav_propertystorage` ( |
225: | id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, |
226: | path VARBINARY(1024) NOT NULL, |
227: | name VARBINARY(100) NOT NULL, |
228: | valuetype INT UNSIGNED, |
229: | value MEDIUMBLOB, |
230: | UNIQUE INDEX path_property (path(600), name(100)) |
231: | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;" |
232: | ); |
233: | Capsule::connection()->statement($sSql); |
234: | |
235: | $sSql = str_replace( |
236: | "%PREFIX%", |
237: | $sPrefix, |
238: | "CREATE TABLE IF NOT EXISTS `%PREFIX%adav_reminders` ( |
239: | `id` int(11) unsigned NOT NULL auto_increment, |
240: | `user` varchar(100) NOT NULL, |
241: | `calendaruri` varchar(255) default NULL, |
242: | `eventid` varchar(255) default NULL, |
243: | `time` int(11) default NULL, |
244: | `starttime` int(11) default NULL, |
245: | `allday` tinyint(1) NOT NULL default '0', |
246: | PRIMARY KEY (`id`) |
247: | ) ENGINE=InnoDB DEFAULT CHARSET=utf8;" |
248: | ); |
249: | Capsule::connection()->statement($sSql); |
250: | } |
251: | |
252: | |
253: | |
254: | |
255: | |
256: | |
257: | public function down() |
258: | { |
259: | Capsule::schema()->dropIfExists('adav_addressbooks'); |
260: | Capsule::schema()->dropIfExists('adav_addressbookchanges'); |
261: | Capsule::schema()->dropIfExists('adav_cache'); |
262: | Capsule::schema()->dropIfExists('adav_calendarinstances'); |
263: | Capsule::schema()->dropIfExists('adav_calendarobjects'); |
264: | Capsule::schema()->dropIfExists('adav_calendars'); |
265: | Capsule::schema()->dropIfExists('adav_calendarchanges'); |
266: | Capsule::schema()->dropIfExists('adav_calendarsubscriptions'); |
267: | Capsule::schema()->dropIfExists('adav_schedulingobjects'); |
268: | Capsule::schema()->dropIfExists('adav_cards'); |
269: | Capsule::schema()->dropIfExists('adav_groupmembers'); |
270: | Capsule::schema()->dropIfExists('adav_locks'); |
271: | Capsule::schema()->dropIfExists('adav_propertystorage'); |
272: | Capsule::schema()->dropIfExists('adav_reminders'); |
273: | } |
274: | } |
275: | |