7 function dav_get_create_statements() {
10 $arr[] = "CREATE TABLE IF NOT EXISTS `dav_addressbooks_community` (
11 `uid` int(11) NOT NULL,
12 `ctag` int(11) unsigned NOT NULL DEFAULT '1',
14 ) ENGINE=MyISAM DEFAULT CHARSET=utf8";
16 $arr[] = "CREATE TABLE IF NOT EXISTS `dav_addressbooks_phone` (
17 `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
18 `uid` int(11) NOT NULL,
19 `principaluri` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
20 `displayname` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
21 `uri` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
22 `description` text COLLATE utf8_unicode_ci,
23 `ctag` int(11) unsigned NOT NULL DEFAULT '1',
25 UNIQUE KEY `principaluri` (`principaluri`,`uri`)
26 ) ENGINE=MyISAM DEFAULT CHARSET=utf8";
28 $arr[] = "CREATE TABLE IF NOT EXISTS `dav_cache_synchronized` (
29 `uid` mediumint(8) unsigned NOT NULL,
30 `namespace` smallint(6) NOT NULL,
31 `namespace_id` int(11) NOT NULL,
32 `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
33 PRIMARY KEY (`uid`,`namespace`,`namespace_id`),
34 KEY `namespace` (`namespace`,`namespace_id`)
35 ) ENGINE=MyISAM DEFAULT CHARSET=utf8";
37 $arr[] = "CREATE TABLE IF NOT EXISTS `dav_caldav_log` (
38 `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
39 `uid` mediumint(9) NOT NULL,
40 `ip` varchar(15) NOT NULL,
41 `user_agent` varchar(100) NOT NULL,
42 `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
43 `method` varchar(10) NOT NULL,
44 `url` varchar(100) NOT NULL,
46 KEY `mitglied` (`uid`)
47 ) ENGINE=MyISAM DEFAULT CHARSET=utf8";
49 $arr[] = "CREATE TABLE IF NOT EXISTS `dav_calendarobjects` (
50 `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
51 `namespace` mediumint(9) NOT NULL,
52 `namespace_id` int(10) unsigned NOT NULL,
54 `uri` varchar(200) NOT NULL,
55 `lastmodified` timestamp NULL DEFAULT NULL,
56 `etag` varchar(15) NOT NULL,
57 `size` int(10) unsigned NOT NULL,
59 UNIQUE KEY `uri` (`uri`,`namespace`,`namespace_id`),
60 KEY `namespace` (`namespace`,`namespace_id`)
61 ) ENGINE=MyISAM DEFAULT CHARSET=utf8";
63 $arr[] = "CREATE TABLE IF NOT EXISTS `dav_calendars` (
64 `namespace` mediumint(9) NOT NULL,
65 `namespace_id` int(10) unsigned NOT NULL,
66 `uid` mediumint(8) unsigned NOT NULL,
67 `calendarorder` int(11) NOT NULL DEFAULT '1',
68 `calendarcolor` varchar(20) NOT NULL DEFAULT '#5858FF',
69 `displayname` varchar(200) NOT NULL,
70 `timezone` text NOT NULL,
71 `description` varchar(500) NOT NULL,
72 `ctag` int(10) unsigned NOT NULL,
73 PRIMARY KEY (`namespace`,`namespace_id`),
75 ) ENGINE=MyISAM DEFAULT CHARSET=utf8";
77 $arr[] = "CREATE TABLE IF NOT EXISTS `dav_cal_virtual_object_cache` (
78 `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
79 `uid` mediumint(8) unsigned NOT NULL,
80 `namespace` mediumint(9) NOT NULL,
81 `namespace_id` int(11) NOT NULL DEFAULT '0',
82 `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
83 `data_uri` char(80) NOT NULL,
84 `data_subject` varchar(1000) NOT NULL,
85 `data_location` varchar(1000) NOT NULL,
86 `data_description` text NOT NULL,
87 `data_start` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
88 `data_end` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
89 `data_allday` tinyint(4) NOT NULL,
90 `data_type` varchar(20) NOT NULL,
92 `ical_size` int(11) NOT NULL,
93 `ical_etag` varchar(15) NOT NULL,
95 KEY `ref_type` (`namespace`,`namespace_id`),
96 KEY `mitglied` (`uid`,`data_end`),
97 KEY `data_uri` (`data_uri`)
98 ) ENGINE=MyISAM DEFAULT CHARSET=utf8";
100 $arr[] = "CREATE TABLE IF NOT EXISTS `dav_cards` (
101 `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
102 `namespace` tinyint(3) unsigned NOT NULL,
103 `namespace_id` int(11) unsigned NOT NULL,
104 `contact` int(11) DEFAULT NULL,
105 `carddata` mediumtext COLLATE utf8_unicode_ci,
106 `uri` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
107 `lastmodified` int(11) unsigned DEFAULT NULL,
108 `manually_edited` tinyint(4) NOT NULL DEFAULT '0',
109 `manually_deleted` tinyint(4) NOT NULL DEFAULT '0',
110 `etag` varchar(15) COLLATE utf8_unicode_ci NOT NULL,
111 `size` int(10) unsigned NOT NULL,
113 UNIQUE KEY `namespace` (`namespace`,`namespace_id`,`contact`),
114 KEY `contact` (`contact`)
115 ) ENGINE=MyISAM DEFAULT CHARSET=utf8";
117 $arr[] = "CREATE TABLE IF NOT EXISTS `dav_jqcalendar` (
118 `id` int(11) NOT NULL AUTO_INCREMENT,
119 `uid` int(10) unsigned NOT NULL,
120 `ical_uri` varchar(200) NOT NULL,
121 `ical_recurr_uri` varchar(100) NOT NULL,
122 `namespace` mediumint(9) NOT NULL,
123 `namespace_id` int(11) NOT NULL,
124 `permission_edit` tinyint(4) NOT NULL DEFAULT '1',
125 `Subject` varchar(1000) DEFAULT NULL,
126 `Location` varchar(1000) DEFAULT NULL,
128 `StartTime` timestamp NULL DEFAULT NULL,
129 `EndTime` timestamp NULL DEFAULT NULL,
130 `IsAllDayEvent` smallint(6) NOT NULL,
131 `Color` varchar(20) DEFAULT NULL,
132 `RecurringRule` varchar(500) DEFAULT NULL,
134 KEY `user` (`uid`,`StartTime`),
135 KEY `zuord_typ` (`namespace`,`namespace_id`),
136 KEY `ical_uri` (`ical_uri`,`ical_recurr_uri`)
137 ) ENGINE=MyISAM DEFAULT CHARSET=utf8";
139 $arr[] = "CREATE TABLE IF NOT EXISTS `dav_locks` (
140 `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
141 `owner` varchar(100) DEFAULT NULL,
142 `timeout` int(10) unsigned DEFAULT NULL,
143 `created` int(11) DEFAULT NULL,
144 `token` varchar(100) DEFAULT NULL,
145 `scope` tinyint(4) DEFAULT NULL,
146 `depth` tinyint(4) DEFAULT NULL,
149 ) ENGINE=MyISAM DEFAULT CHARSET=utf8";
152 $arr[] = "CREATE TABLE IF NOT EXISTS `dav_notifications` (
153 `id` int(11) NOT NULL AUTO_INCREMENT,
154 `uid` int(10) unsigned NOT NULL,
155 `ical_uri` varchar(200) NOT NULL,
156 `ical_recurr_uri` varchar(100) NOT NULL,
157 `namespace` mediumint(8) unsigned NOT NULL,
158 `namespace_id` int(10) unsigned NOT NULL,
159 `alert_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
160 `rel_type` enum('second','minute','hour','day','week','month','year') NOT NULL,
161 `rel_value` mediumint(9) NOT NULL,
162 `notified` tinyint(4) NOT NULL DEFAULT '0',
164 KEY `notified` (`notified`,`alert_date`),
165 KEY `ical_uri` (`uid`,`ical_uri`,`ical_recurr_uri`)
166 ) ENGINE=MyISAM DEFAULT CHARSET=utf8";
174 function dav_check_tables() {
175 $dbv = get_config("dav", "db_version");
176 if ($dbv == CALDAV_DB_VERSION) return 0; // Correct
177 if (is_numeric($dbv)) return 1; // Older version (update needed)
178 return -1; // Not installed
185 function dav_create_tables()
187 $stms = dav_get_create_statements();
191 foreach ($stms as $st) {
193 if ($db->error) $errors[] = $db->error;
196 if (count($errors) == 0) set_config("dav", "db_version", CALDAV_DB_VERSION);