]> git.pld-linux.org Git - packages/cacti-plugin-npc.git/blob - ndoutils-1.5.patch
typos in few tables
[packages/cacti-plugin-npc.git] / ndoutils-1.5.patch
1 upgrade schema to ndoutils-1.5.2
2
3 - took the table structure from /usr/share/ndoutils/mysql.sql
4 - merged indexes from npc/upgrade_schema.sql
5 - some indexes are still questionable
6 - three tables are cacti-only:
7  * npc_service_graphs
8  * npc_host_graphs
9  * npc_settings
10 - mysql table type changed (back to) MyISAM
11 - latin1 charset enforcing on tables, seems wrong (fix it in ndoutils?)
12
13 --- cacti-plugin-npc-2.0.4/npc/setup.php        2012-11-25 16:32:50.264148508 +0200
14 +++ plugins/npc/setup.php       2012-11-25 23:44:50.785915818 +0200
15 @@ -307,1168 +307,1352 @@
16              }
17      }
18  
19 +
20 +       // Add some default values
21 +       $sql[] = "INSERT IGNORE INTO settings (name, value) VALUES ('npc_date_format','Y-m-d');";
22 +       $sql[] = "INSERT IGNORE INTO settings (name, value) VALUES ('npc_time_format','H:i');";
23 +       $sql[] = "INSERT IGNORE INTO settings (name, value) VALUES ('npc_log_level','0');";
24 +
25      if (!in_array('npc_acknowledgements', $tables)) {
26 -        $sql[] = "CREATE TABLE `npc_acknowledgements` (
27 -                    `acknowledgement_id` int(11) NOT NULL auto_increment,
28 -                    `instance_id` smallint(6) NOT NULL default '0',
29 -                    `entry_time` datetime NOT NULL default '0000-00-00 00:00:00',
30 -                    `entry_time_usec` int(11) NOT NULL default '0',
31 -                    `acknowledgement_type` smallint(6) NOT NULL default '0',
32 -                    `object_id` int(11) NOT NULL default '0',
33 -                    `state` smallint(6) NOT NULL default '0',
34 -                    `author_name` varchar(64) NOT NULL default '',
35 -                    `comment_data` varchar(255) NOT NULL default '',
36 -                    `is_sticky` smallint(6) NOT NULL default '0',
37 -                    `persistent_comment` smallint(6) NOT NULL default '0',
38 -                    `notify_contacts` smallint(6) NOT NULL default '0',
39 -                    PRIMARY KEY  (`acknowledgement_id`)
40 -                 )  ENGINE=InnoDB COMMENT='Current and historical host and service acknowledgements';";
41 -
42 -        // Add some default values
43 -        $sql[] = "INSERT INTO settings VALUES ('npc_date_format','Y-m-d');";
44 -        $sql[] = "INSERT INTO settings VALUES ('npc_time_format','H:i');";
45 -        $sql[] = "INSERT INTO settings VALUES ('npc_log_level','0');";
46 +               $sql[] = "
47 +                       CREATE TABLE IF NOT EXISTS `npc_acknowledgements` (
48 +                         `acknowledgement_id` int(11) NOT NULL auto_increment,
49 +                         `instance_id` smallint(6) NOT NULL default '0',
50 +                         `entry_time` datetime NOT NULL default '0000-00-00 00:00:00',
51 +                         `entry_time_usec` int(11) NOT NULL default '0',
52 +                         `acknowledgement_type` smallint(6) NOT NULL default '0',
53 +                         `object_id` int(11) NOT NULL default '0',
54 +                         `state` smallint(6) NOT NULL default '0',
55 +                         `author_name` varchar(64) character set latin1 NOT NULL default '',
56 +                         `comment_data` varchar(255) character set latin1 NOT NULL default '',
57 +                         `is_sticky` smallint(6) NOT NULL default '0',
58 +                         `persistent_comment` smallint(6) NOT NULL default '0',
59 +                         `notify_contacts` smallint(6) NOT NULL default '0',
60 +                         PRIMARY KEY  (`acknowledgement_id`)
61 +                       ) ENGINE=MyISAM COMMENT='Current and historical host and service acknowledgements';
62 +               ";
63      }
64  
65      if (!in_array('npc_commands', $tables)) {
66 -        $sql[] = "CREATE TABLE `npc_commands` (
67 -                    `command_id` int(11) NOT NULL auto_increment,
68 -                    `instance_id` smallint(6) NOT NULL default '0',
69 -                    `config_type` smallint(6) NOT NULL default '0',
70 -                    `object_id` int(11) NOT NULL default '0',
71 -                    `command_line` varchar(255) NOT NULL default '',
72 -                    PRIMARY KEY  (`command_id`),
73 -                    UNIQUE KEY `instance_id` (`instance_id`,`object_id`,`config_type`)
74 -                  ) ENGINE=InnoDB COMMENT='Command definitions';";
75 +               $sql[] = "
76 +                       CREATE TABLE IF NOT EXISTS `npc_commands` (
77 +                         `command_id` int(11) NOT NULL auto_increment,
78 +                         `instance_id` smallint(6) NOT NULL default '0',
79 +                         `config_type` smallint(6) NOT NULL default '0',
80 +                         `object_id` int(11) NOT NULL default '0',
81 +                         `command_line` varchar(255) character set latin1 NOT NULL default '',
82 +                         PRIMARY KEY  (`command_id`),
83 +                         UNIQUE KEY `instance_id` (`instance_id`,`object_id`,`config_type`)
84 +                       ) ENGINE=MyISAM  COMMENT='Command definitions';
85 +               ";
86      }
87  
88      if (!in_array('npc_commenthistory', $tables)) {
89 -        $sql[] = "CREATE TABLE `npc_commenthistory` (
90 -                    `commenthistory_id` int(11) NOT NULL auto_increment,
91 -                    `instance_id` smallint(6) NOT NULL default '0',
92 -                    `entry_time` datetime NOT NULL default '0000-00-00 00:00:00',
93 -                    `entry_time_usec` int(11) NOT NULL default '0',
94 -                    `comment_type` smallint(6) NOT NULL default '0',
95 -                    `entry_type` smallint(6) NOT NULL default '0',
96 -                    `object_id` int(11) NOT NULL default '0',
97 -                    `comment_time` datetime NOT NULL default '0000-00-00 00:00:00',
98 -                    `internal_comment_id` int(11) NOT NULL default '0',
99 -                    `author_name` varchar(64) NOT NULL default '',
100 -                    `comment_data` varchar(255) NOT NULL default '',
101 -                    `is_persistent` smallint(6) NOT NULL default '0',
102 -                    `comment_source` smallint(6) NOT NULL default '0',
103 -                    `expires` smallint(6) NOT NULL default '0',
104 -                    `expiration_time` datetime NOT NULL default '0000-00-00 00:00:00',
105 -                    `deletion_time` datetime NOT NULL default '0000-00-00 00:00:00',
106 -                    `deletion_time_usec` int(11) NOT NULL default '0',
107 -                    PRIMARY KEY  (`commenthistory_id`),
108 -                    UNIQUE KEY `instance_id` (`instance_id`,`comment_time`,`internal_comment_id`),
109 -                    KEY `idx_internal_comment_id` (`internal_comment_id`)
110 -                  ) ENGINE=InnoDB COMMENT='Historical host and service comments';";
111 +               $sql[] = "
112 +                       CREATE TABLE IF NOT EXISTS `npc_commenthistory` (
113 +                         `commenthistory_id` int(11) NOT NULL auto_increment,
114 +                         `instance_id` smallint(6) NOT NULL default '0',
115 +                         `entry_time` datetime NOT NULL default '0000-00-00 00:00:00',
116 +                         `entry_time_usec` int(11) NOT NULL default '0',
117 +                         `comment_type` smallint(6) NOT NULL default '0',
118 +                         `entry_type` smallint(6) NOT NULL default '0',
119 +                         `object_id` int(11) NOT NULL default '0',
120 +                         `comment_time` datetime NOT NULL default '0000-00-00 00:00:00',
121 +                         `internal_comment_id` int(11) NOT NULL default '0',
122 +                         `author_name` varchar(64) character set latin1 NOT NULL default '',
123 +                         `comment_data` varchar(255) character set latin1 NOT NULL default '',
124 +                         `is_persistent` smallint(6) NOT NULL default '0',
125 +                         `comment_source` smallint(6) NOT NULL default '0',
126 +                         `expires` smallint(6) NOT NULL default '0',
127 +                         `expiration_time` datetime NOT NULL default '0000-00-00 00:00:00',
128 +                         `deletion_time` datetime NOT NULL default '0000-00-00 00:00:00',
129 +                         `deletion_time_usec` int(11) NOT NULL default '0',
130 +                         PRIMARY KEY  (`commenthistory_id`),
131 +                         UNIQUE KEY `instance_id` (`instance_id`,`comment_time`,`internal_comment_id`)
132 +                       ) ENGINE=MyISAM  COMMENT='Historical host and service comments';
133 +               ";
134      }
135  
136      if (!in_array('npc_comments', $tables)) {
137 -        $sql[] = "CREATE TABLE `npc_comments` (
138 -                    `comment_id` int(11) NOT NULL auto_increment,
139 -                    `instance_id` smallint(6) NOT NULL default '0',
140 -                    `entry_time` datetime NOT NULL default '0000-00-00 00:00:00',
141 -                    `entry_time_usec` int(11) NOT NULL default '0',
142 -                    `comment_type` smallint(6) NOT NULL default '0',
143 -                    `entry_type` smallint(6) NOT NULL default '0',
144 -                    `object_id` int(11) NOT NULL default '0',
145 -                    `comment_time` datetime NOT NULL default '0000-00-00 00:00:00',
146 -                    `internal_comment_id` int(11) NOT NULL default '0',
147 -                    `author_name` varchar(64) NOT NULL default '',
148 -                    `comment_data` varchar(255) NOT NULL default '',
149 -                    `is_persistent` smallint(6) NOT NULL default '0',
150 -                    `comment_source` smallint(6) NOT NULL default '0',
151 -                    `expires` smallint(6) NOT NULL default '0',
152 -                    `expiration_time` datetime NOT NULL default '0000-00-00 00:00:00',
153 -                    PRIMARY KEY  (`comment_id`),
154 -                    UNIQUE KEY `instance_id` (`instance_id`,`comment_time`,`internal_comment_id`),
155 -                    KEY `idx1` (`object_id`)
156 -                  ) ENGINE=InnoDB;";
157 +               $sql[] = "
158 +                       CREATE TABLE IF NOT EXISTS `npc_comments` (
159 +                         `comment_id` int(11) NOT NULL auto_increment,
160 +                         `instance_id` smallint(6) NOT NULL default '0',
161 +                         `entry_time` datetime NOT NULL default '0000-00-00 00:00:00',
162 +                         `entry_time_usec` int(11) NOT NULL default '0',
163 +                         `comment_type` smallint(6) NOT NULL default '0',
164 +                         `entry_type` smallint(6) NOT NULL default '0',
165 +                         `object_id` int(11) NOT NULL default '0',
166 +                         `comment_time` datetime NOT NULL default '0000-00-00 00:00:00',
167 +                         `internal_comment_id` int(11) NOT NULL default '0',
168 +                         `author_name` varchar(64) character set latin1 NOT NULL default '',
169 +                         `comment_data` varchar(255) character set latin1 NOT NULL default '',
170 +                         `is_persistent` smallint(6) NOT NULL default '0',
171 +                         `comment_source` smallint(6) NOT NULL default '0',
172 +                         `expires` smallint(6) NOT NULL default '0',
173 +                         `expiration_time` datetime NOT NULL default '0000-00-00 00:00:00',
174 +                         PRIMARY KEY  (`comment_id`),
175 +                         UNIQUE KEY `instance_id` (`instance_id`,`comment_time`,`internal_comment_id`)
176 +                       ) ENGINE=MyISAM ;
177 +               ";
178 +               $sql[] = "CREATE INDEX idx1 ON npc_comments(object_id);";
179      }
180  
181      if (!in_array('npc_configfiles', $tables)) {
182 -        $sql[] = "CREATE TABLE `npc_configfiles` (
183 -                    `configfile_id` int(11) NOT NULL auto_increment,
184 -                    `instance_id` smallint(6) NOT NULL default '0',
185 -                    `configfile_type` smallint(6) NOT NULL default '0',
186 -                    `configfile_path` varchar(255) NOT NULL default '',
187 -                    PRIMARY KEY  (`configfile_id`),
188 -                    UNIQUE KEY `instance_id` (`instance_id`,`configfile_type`,`configfile_path`)
189 -                  ) ENGINE=InnoDB COMMENT='Configuration files';";
190 +               $sql[] = "
191 +                       CREATE TABLE IF NOT EXISTS `npc_configfiles` (
192 +                         `configfile_id` int(11) NOT NULL auto_increment,
193 +                         `instance_id` smallint(6) NOT NULL default '0',
194 +                         `configfile_type` smallint(6) NOT NULL default '0',
195 +                         `configfile_path` varchar(255) character set latin1 NOT NULL default '',
196 +                         PRIMARY KEY  (`configfile_id`),
197 +                         UNIQUE KEY `instance_id` (`instance_id`,`configfile_type`,`configfile_path`)
198 +                       ) ENGINE=MyISAM  COMMENT='Configuration files';
199 +               ";
200      }
201  
202      if (!in_array('npc_configfilevariables', $tables)) {
203 -        $sql[] = "CREATE TABLE `npc_configfilevariables` (
204 -                    `configfilevariable_id` int(11) NOT NULL auto_increment,
205 -                    `instance_id` smallint(6) NOT NULL default '0',
206 -                    `configfile_id` int(11) NOT NULL default '0',
207 -                    `varname` varchar(64) NOT NULL default '',
208 -                    `varvalue` varchar(255) NOT NULL default '',
209 -                    PRIMARY KEY  (`configfilevariable_id`),
210 -                    KEY `instance_id` (`instance_id`,`configfile_id`)
211 -                  ) ENGINE=InnoDB COMMENT='Configuration file variables';";
212 +               $sql[] = "
213 +                       CREATE TABLE IF NOT EXISTS `npc_configfilevariables` (
214 +                         `configfilevariable_id` int(11) NOT NULL auto_increment,
215 +                         `instance_id` smallint(6) NOT NULL default '0',
216 +                         `configfile_id` int(11) NOT NULL default '0',
217 +                         `varname` varchar(64) character set latin1 NOT NULL default '',
218 +                         `varvalue` varchar(255) character set latin1 NOT NULL default '',
219 +                         PRIMARY KEY  (`configfilevariable_id`)
220 +                       ) ENGINE=MyISAM  COMMENT='Configuration file variables';
221 +               ";
222 +               // TODO? $sql[] = "KEY `instance_id` (`instance_id`,`configfile_id`";
223      }
224  
225      if (!in_array('npc_conninfo', $tables)) {
226 -        $sql[] = "CREATE TABLE `npc_conninfo` (
227 -                    `conninfo_id` int(11) NOT NULL auto_increment,
228 -                    `instance_id` smallint(6) NOT NULL default '0',
229 -                    `agent_name` varchar(32) NOT NULL default '',
230 -                    `agent_version` varchar(8) NOT NULL default '',
231 -                    `disposition` varchar(16) NOT NULL default '',
232 -                    `connect_source` varchar(16) NOT NULL default '',
233 -                    `connect_type` varchar(16) NOT NULL default '',
234 -                    `connect_time` datetime NOT NULL default '0000-00-00 00:00:00',
235 -                    `disconnect_time` datetime NOT NULL default '0000-00-00 00:00:00',
236 -                    `last_checkin_time` datetime NOT NULL default '0000-00-00 00:00:00',
237 -                    `data_start_time` datetime NOT NULL default '0000-00-00 00:00:00',
238 -                    `data_end_time` datetime NOT NULL default '0000-00-00 00:00:00',
239 -                    `bytes_processed` int(11) NOT NULL default '0',
240 -                    `lines_processed` int(11) NOT NULL default '0',
241 -                    `entries_processed` int(11) NOT NULL default '0',
242 -                    PRIMARY KEY  (`conninfo_id`)
243 -                  ) ENGINE=InnoDB COMMENT='NDO2DB daemon connection information';";
244 +               $sql[] = "
245 +
246 +                       CREATE TABLE IF NOT EXISTS `npc_conninfo` (
247 +                         `conninfo_id` int(11) NOT NULL auto_increment,
248 +                         `instance_id` smallint(6) NOT NULL default '0',
249 +                         `agent_name` varchar(32) character set latin1 NOT NULL default '',
250 +                         `agent_version` varchar(8) character set latin1 NOT NULL default '',
251 +                         `disposition` varchar(16) character set latin1 NOT NULL default '',
252 +                         `connect_source` varchar(16) character set latin1 NOT NULL default '',
253 +                         `connect_type` varchar(16) character set latin1 NOT NULL default '',
254 +                         `connect_time` datetime NOT NULL default '0000-00-00 00:00:00',
255 +                         `disconnect_time` datetime NOT NULL default '0000-00-00 00:00:00',
256 +                         `last_checkin_time` datetime NOT NULL default '0000-00-00 00:00:00',
257 +                         `data_start_time` datetime NOT NULL default '0000-00-00 00:00:00',
258 +                         `data_end_time` datetime NOT NULL default '0000-00-00 00:00:00',
259 +                         `bytes_processed` int(11) NOT NULL default '0',
260 +                         `lines_processed` int(11) NOT NULL default '0',
261 +                         `entries_processed` int(11) NOT NULL default '0',
262 +                         PRIMARY KEY  (`conninfo_id`)
263 +                       ) ENGINE=MyISAM  COMMENT='NDO2DB daemon connection information';
264 +               ";
265      }
266  
267      if (!in_array('npc_contact_addresses', $tables)) {
268 -        $sql[] = "CREATE TABLE `npc_contact_addresses` (
269 -                    `contact_address_id` int(11) NOT NULL auto_increment,
270 -                    `instance_id` smallint(6) NOT NULL default '0',
271 -                    `contact_id` int(11) NOT NULL default '0',
272 -                    `address_number` smallint(6) NOT NULL default '0',
273 -                    `address` varchar(255) NOT NULL default '',
274 -                    PRIMARY KEY  (`contact_address_id`),
275 -                    UNIQUE KEY `contact_id` (`contact_id`,`address_number`)
276 -                  ) ENGINE=InnoDB COMMENT='Contact addresses';";
277 +               $sql[] = "
278 +                       CREATE TABLE IF NOT EXISTS `npc_contact_addresses` (
279 +                         `contact_address_id` int(11) NOT NULL auto_increment,
280 +                         `instance_id` smallint(6) NOT NULL default '0',
281 +                         `contact_id` int(11) NOT NULL default '0',
282 +                         `address_number` smallint(6) NOT NULL default '0',
283 +                         `address` varchar(255) character set latin1 NOT NULL default '',
284 +                         PRIMARY KEY  (`contact_address_id`),
285 +                         UNIQUE KEY `contact_id` (`contact_id`,`address_number`)
286 +                       ) ENGINE=MyISAM COMMENT='Contact addresses';
287 +               ";
288      }
289  
290      if (!in_array('npc_contact_notificationcommands', $tables)) {
291 -        $sql[] = "CREATE TABLE `npc_contact_notificationcommands` (
292 -                    `contact_notificationcommand_id` int(11) NOT NULL auto_increment,
293 -                    `instance_id` smallint(6) NOT NULL default '0',
294 -                    `contact_id` int(11) NOT NULL default '0',
295 -                    `notification_type` smallint(6) NOT NULL default '0',
296 -                    `command_object_id` int(11) NOT NULL default '0',
297 -                    `command_args` varchar(255) NOT NULL default '',
298 -                    PRIMARY KEY  (`contact_notificationcommand_id`),
299 -                    UNIQUE KEY `contact_id` (`contact_id`,`notification_type`,`command_object_id`,`command_args`)
300 -                  ) ENGINE=InnoDB COMMENT='Contact host and service notification commands';";
301 +               $sql[] = "
302 +                       CREATE TABLE IF NOT EXISTS `npc_contact_notificationcommands` (
303 +                         `contact_notificationcommand_id` int(11) NOT NULL auto_increment,
304 +                         `instance_id` smallint(6) NOT NULL default '0',
305 +                         `contact_id` int(11) NOT NULL default '0',
306 +                         `notification_type` smallint(6) NOT NULL default '0',
307 +                         `command_object_id` int(11) NOT NULL default '0',
308 +                         `command_args` varchar(255) character set latin1 NOT NULL default '',
309 +                         PRIMARY KEY  (`contact_notificationcommand_id`),
310 +                         UNIQUE KEY `contact_id` (`contact_id`,`notification_type`,`command_object_id`,`command_args`)
311 +                       ) ENGINE=MyISAM  COMMENT='Contact host and service notification commands';
312 +               ";
313      }
314  
315      if (!in_array('npc_contactgroup_members', $tables)) {
316 -        $sql[] = "CREATE TABLE `npc_contactgroup_members` (
317 -                    `contactgroup_member_id` int(11) NOT NULL auto_increment,
318 -                    `instance_id` smallint(6) NOT NULL default '0',
319 -                    `contactgroup_id` int(11) NOT NULL default '0',
320 -                    `contact_object_id` int(11) NOT NULL default '0',
321 -                    PRIMARY KEY  (`contactgroup_member_id`),
322 -                    UNIQUE KEY `instance_id` (`contactgroup_id`,`contact_object_id`)
323 -                  ) ENGINE=InnoDB COMMENT='Contactgroup members';";
324 +               $sql[] = "
325 +                       CREATE TABLE IF NOT EXISTS `npc_contactgroup_members` (
326 +                         `contactgroup_member_id` int(11) NOT NULL auto_increment,
327 +                         `instance_id` smallint(6) NOT NULL default '0',
328 +                         `contactgroup_id` int(11) NOT NULL default '0',
329 +                         `contact_object_id` int(11) NOT NULL default '0',
330 +                         PRIMARY KEY  (`contactgroup_member_id`),
331 +                         UNIQUE KEY `instance_id` (`contactgroup_id`,`contact_object_id`)
332 +                       ) ENGINE=MyISAM  COMMENT='Contactgroup members';
333 +               ";
334      }
335  
336      if (!in_array('npc_contactgroups', $tables)) {
337 -        $sql[] = "CREATE TABLE `npc_contactgroups` (
338 -                    `contactgroup_id` int(11) NOT NULL auto_increment,
339 -                    `instance_id` smallint(6) NOT NULL default '0',
340 -                    `config_type` smallint(6) NOT NULL default '0',
341 -                    `contactgroup_object_id` int(11) NOT NULL default '0',
342 -                    `alias` varchar(255) NOT NULL default '',
343 -                    PRIMARY KEY  (`contactgroup_id`),
344 -                    UNIQUE KEY `instance_id` (`instance_id`,`config_type`,`contactgroup_object_id`)
345 -                  ) ENGINE=InnoDB COMMENT='Contactgroup definitions';";
346 +               $sql[] = "
347 +
348 +                       CREATE TABLE IF NOT EXISTS `npc_contactgroups` (
349 +                         `contactgroup_id` int(11) NOT NULL auto_increment,
350 +                         `instance_id` smallint(6) NOT NULL default '0',
351 +                         `config_type` smallint(6) NOT NULL default '0',
352 +                         `contactgroup_object_id` int(11) NOT NULL default '0',
353 +                         `alias` varchar(255) character set latin1 NOT NULL default '',
354 +                         PRIMARY KEY  (`contactgroup_id`),
355 +                         UNIQUE KEY `instance_id` (`instance_id`,`config_type`,`contactgroup_object_id`)
356 +                       ) ENGINE=MyISAM  COMMENT='Contactgroup definitions';
357 +               ";
358      }
359  
360      if (!in_array('npc_contactnotificationmethods', $tables)) {
361 -        $sql[] = "CREATE TABLE `npc_contactnotificationmethods` (
362 -                    `contactnotificationmethod_id` int(11) NOT NULL auto_increment,
363 -                    `instance_id` smallint(6) NOT NULL default '0',
364 -                    `contactnotification_id` int(11) NOT NULL default '0',
365 -                    `start_time` datetime NOT NULL default '0000-00-00 00:00:00',
366 -                    `start_time_usec` int(11) NOT NULL default '0',
367 -                    `end_time` datetime NOT NULL default '0000-00-00 00:00:00',
368 -                    `end_time_usec` int(11) NOT NULL default '0',
369 -                    `command_object_id` int(11) NOT NULL default '0',
370 -                    `command_args` varchar(255) NOT NULL default '',
371 -                    PRIMARY KEY  (`contactnotificationmethod_id`),
372 -                    UNIQUE KEY `instance_id` (`instance_id`,`contactnotification_id`,`start_time`,`start_time_usec`)
373 -                  ) ENGINE=InnoDB COMMENT='Historical record of contact notification methods';";
374 +               $sql[] = "
375 +                       CREATE TABLE IF NOT EXISTS `npc_contactnotificationmethods` (
376 +                         `contactnotificationmethod_id` int(11) NOT NULL auto_increment,
377 +                         `instance_id` smallint(6) NOT NULL default '0',
378 +                         `contactnotification_id` int(11) NOT NULL default '0',
379 +                         `start_time` datetime NOT NULL default '0000-00-00 00:00:00',
380 +                         `start_time_usec` int(11) NOT NULL default '0',
381 +                         `end_time` datetime NOT NULL default '0000-00-00 00:00:00',
382 +                         `end_time_usec` int(11) NOT NULL default '0',
383 +                         `command_object_id` int(11) NOT NULL default '0',
384 +                         `command_args` varchar(255) character set latin1 NOT NULL default '',
385 +                         PRIMARY KEY  (`contactnotificationmethod_id`),
386 +                         UNIQUE KEY `instance_id` (`instance_id`,`contactnotification_id`,`start_time`,`start_time_usec`)
387 +                       ) ENGINE=MyISAM  COMMENT='Historical record of contact notification methods';
388 +               ";
389      }
390  
391      if (!in_array('npc_contactnotifications', $tables)) {
392 -        $sql[] = "CREATE TABLE `npc_contactnotifications` (
393 -                    `contactnotification_id` int(11) NOT NULL auto_increment,
394 -                    `instance_id` smallint(6) NOT NULL default '0',
395 -                    `notification_id` int(11) NOT NULL default '0',
396 -                    `contact_object_id` int(11) NOT NULL default '0',
397 -                    `start_time` datetime NOT NULL default '0000-00-00 00:00:00',
398 -                    `start_time_usec` int(11) NOT NULL default '0',
399 -                    `end_time` datetime NOT NULL default '0000-00-00 00:00:00',
400 -                    `end_time_usec` int(11) NOT NULL default '0',
401 -                    PRIMARY KEY  (`contactnotification_id`),
402 -                    UNIQUE KEY `instance_id` (`instance_id`,`contact_object_id`,`start_time`,`start_time_usec`)
403 -                  ) ENGINE=InnoDB COMMENT='Historical record of contact notifications';";
404 +               $sql[] = "
405 +                       CREATE TABLE IF NOT EXISTS `npc_contactnotifications` (
406 +                         `contactnotification_id` int(11) NOT NULL auto_increment,
407 +                         `instance_id` smallint(6) NOT NULL default '0',
408 +                         `notification_id` int(11) NOT NULL default '0',
409 +                         `contact_object_id` int(11) NOT NULL default '0',
410 +                         `start_time` datetime NOT NULL default '0000-00-00 00:00:00',
411 +                         `start_time_usec` int(11) NOT NULL default '0',
412 +                         `end_time` datetime NOT NULL default '0000-00-00 00:00:00',
413 +                         `end_time_usec` int(11) NOT NULL default '0',
414 +                         PRIMARY KEY  (`contactnotification_id`),
415 +                         UNIQUE KEY `instance_id` (`instance_id`,`contact_object_id`,`start_time`,`start_time_usec`)
416 +                       ) ENGINE=MyISAM  COMMENT='Historical record of contact notifications';
417 +               ";
418      }
419  
420      if (!in_array('npc_contacts', $tables)) {
421 -        $sql[] = "CREATE TABLE `npc_contacts` (
422 -                    `contact_id` int(11) NOT NULL auto_increment,
423 -                    `instance_id` smallint(6) NOT NULL default '0',
424 -                    `config_type` smallint(6) NOT NULL default '0',
425 -                    `contact_object_id` int(11) NOT NULL default '0',
426 -                    `alias` varchar(64) NOT NULL default '',
427 -                    `email_address` varchar(255) NOT NULL default '',
428 -                    `pager_address` varchar(64) NOT NULL default '',
429 -                    `host_timeperiod_object_id` int(11) NOT NULL default '0',
430 -                    `service_timeperiod_object_id` int(11) NOT NULL default '0',
431 -                    `host_notifications_enabled` smallint(6) NOT NULL default '0',
432 -                    `service_notifications_enabled` smallint(6) NOT NULL default '0',
433 -                    `can_submit_commands` smallint(6) NOT NULL default '0',
434 -                    `notify_service_recovery` smallint(6) NOT NULL default '0',
435 -                    `notify_service_warning` smallint(6) NOT NULL default '0',
436 -                    `notify_service_unknown` smallint(6) NOT NULL default '0',
437 -                    `notify_service_critical` smallint(6) NOT NULL default '0',
438 -                    `notify_service_flapping` smallint(6) NOT NULL default '0',
439 -                    `notify_service_downtime` smallint(6) NOT NULL default '0',
440 -                    `notify_host_recovery` smallint(6) NOT NULL default '0',
441 -                    `notify_host_down` smallint(6) NOT NULL default '0',
442 -                    `notify_host_unreachable` smallint(6) NOT NULL default '0',
443 -                    `notify_host_flapping` smallint(6) NOT NULL default '0',
444 -                    `notify_host_downtime` smallint(6) NOT NULL default '0',
445 -                    PRIMARY KEY  (`contact_id`),
446 -                    UNIQUE KEY `instance_id` (`instance_id`,`config_type`,`contact_object_id`)
447 -                  ) ENGINE=InnoDB COMMENT='Contact definitions';";
448 +               $sql[] = "
449 +                       CREATE TABLE IF NOT EXISTS `npc_contacts` (
450 +                         `contact_id` int(11) NOT NULL auto_increment,
451 +                         `instance_id` smallint(6) NOT NULL default '0',
452 +                         `config_type` smallint(6) NOT NULL default '0',
453 +                         `contact_object_id` int(11) NOT NULL default '0',
454 +                         `alias` varchar(64) character set latin1 NOT NULL default '',
455 +                         `email_address` varchar(255) character set latin1 NOT NULL default '',
456 +                         `pager_address` varchar(64) character set latin1 NOT NULL default '',
457 +                         `host_timeperiod_object_id` int(11) NOT NULL default '0',
458 +                         `service_timeperiod_object_id` int(11) NOT NULL default '0',
459 +                         `host_notifications_enabled` smallint(6) NOT NULL default '0',
460 +                         `service_notifications_enabled` smallint(6) NOT NULL default '0',
461 +                         `can_submit_commands` smallint(6) NOT NULL default '0',
462 +                         `notify_service_recovery` smallint(6) NOT NULL default '0',
463 +                         `notify_service_warning` smallint(6) NOT NULL default '0',
464 +                         `notify_service_unknown` smallint(6) NOT NULL default '0',
465 +                         `notify_service_critical` smallint(6) NOT NULL default '0',
466 +                         `notify_service_flapping` smallint(6) NOT NULL default '0',
467 +                         `notify_service_downtime` smallint(6) NOT NULL default '0',
468 +                         `notify_host_recovery` smallint(6) NOT NULL default '0',
469 +                         `notify_host_down` smallint(6) NOT NULL default '0',
470 +                         `notify_host_unreachable` smallint(6) NOT NULL default '0',
471 +                         `notify_host_flapping` smallint(6) NOT NULL default '0',
472 +                         `notify_host_downtime` smallint(6) NOT NULL default '0',
473 +                         PRIMARY KEY  (`contact_id`),
474 +                         UNIQUE KEY `instance_id` (`instance_id`,`config_type`,`contact_object_id`)
475 +                       ) ENGINE=MyISAM  COMMENT='Contact definitions';
476 +               ";
477      }
478  
479      if (!in_array('npc_contactstatus', $tables)) {
480 -        $sql[] = "CREATE TABLE `npc_contactstatus` (
481 -                    `contactstatus_id` int(11) NOT NULL auto_increment,
482 -                    `instance_id` smallint(6) NOT NULL default '0',
483 -                    `contact_object_id` int(11) NOT NULL default '0',
484 -                    `status_update_time` datetime NOT NULL default '0000-00-00 00:00:00',
485 -                    `host_notifications_enabled` smallint(6) NOT NULL default '0',
486 -                    `service_notifications_enabled` smallint(6) NOT NULL default '0',
487 -                    `last_host_notification` datetime NOT NULL default '0000-00-00 00:00:00',
488 -                    `last_service_notification` datetime NOT NULL default '0000-00-00 00:00:00',
489 -                    `modified_attributes` int(11) NOT NULL default '0',
490 -                    `modified_host_attributes` int(11) NOT NULL default '0',
491 -                    `modified_service_attributes` int(11) NOT NULL default '0',
492 -                    PRIMARY KEY  (`contactstatus_id`),
493 -                    UNIQUE KEY `contact_object_id` (`contact_object_id`)
494 -                  ) ENGINE=InnoDB COMMENT='Contact status';";
495 +               $sql[] = "
496 +                       CREATE TABLE IF NOT EXISTS `npc_contactstatus` (
497 +                         `contactstatus_id` int(11) NOT NULL auto_increment,
498 +                         `instance_id` smallint(6) NOT NULL default '0',
499 +                         `contact_object_id` int(11) NOT NULL default '0',
500 +                         `status_update_time` datetime NOT NULL default '0000-00-00 00:00:00',
501 +                         `host_notifications_enabled` smallint(6) NOT NULL default '0',
502 +                         `service_notifications_enabled` smallint(6) NOT NULL default '0',
503 +                         `last_host_notification` datetime NOT NULL default '0000-00-00 00:00:00',
504 +                         `last_service_notification` datetime NOT NULL default '0000-00-00 00:00:00',
505 +                         `modified_attributes` int(11) NOT NULL default '0',
506 +                         `modified_host_attributes` int(11) NOT NULL default '0',
507 +                         `modified_service_attributes` int(11) NOT NULL default '0',
508 +                         PRIMARY KEY  (`contactstatus_id`),
509 +                         UNIQUE KEY `contact_object_id` (`contact_object_id`)
510 +                       ) ENGINE=MyISAM  COMMENT='Contact status';
511 +               ";
512      }
513  
514      if (!in_array('npc_customvariables', $tables)) {
515 -        $sql[] = "CREATE TABLE `npc_customvariables` (
516 -                    `customvariable_id` int(11) NOT NULL auto_increment,
517 -                    `instance_id` smallint(6) NOT NULL default '0',
518 -                    `object_id` int(11) NOT NULL default '0',
519 -                    `config_type` smallint(6) NOT NULL default '0',
520 -                    `has_been_modified` smallint(6) NOT NULL default '0',
521 -                    `varname` varchar(255) NOT NULL default '',
522 -                    `varvalue` varchar(255) NOT NULL default '',
523 -                    PRIMARY KEY  (`customvariable_id`),
524 -                    UNIQUE KEY `object_id_2` (`object_id`,`config_type`,`varname`),
525 -                    KEY `varname` (`varname`)
526 -                  ) ENGINE=InnoDB COMMENT='Custom variables';";
527 +               $sql[] = "
528 +                       CREATE TABLE IF NOT EXISTS `npc_customvariables` (
529 +                         `customvariable_id` int(11) NOT NULL auto_increment,
530 +                         `instance_id` smallint(6) NOT NULL default '0',
531 +                         `object_id` int(11) NOT NULL default '0',
532 +                         `config_type` smallint(6) NOT NULL default '0',
533 +                         `has_been_modified` smallint(6) NOT NULL default '0',
534 +                         `varname` varchar(255) character set latin1 NOT NULL default '',
535 +                         `varvalue` varchar(255) character set latin1 NOT NULL default '',
536 +                         PRIMARY KEY  (`customvariable_id`),
537 +                         UNIQUE KEY `object_id_2` (`object_id`,`config_type`,`varname`),
538 +                         KEY `varname` (`varname`)
539 +                       ) ENGINE=MyISAM COMMENT='Custom variables';
540 +               ";
541      }
542  
543      if (!in_array('npc_customvariablestatus', $tables)) {
544 -        $sql[] = "CREATE TABLE `npc_customvariablestatus` (
545 -                    `customvariablestatus_id` int(11) NOT NULL auto_increment,
546 -                    `instance_id` smallint(6) NOT NULL default '0',
547 -                    `object_id` int(11) NOT NULL default '0',
548 -                    `status_update_time` datetime NOT NULL default '0000-00-00 00:00:00',
549 -                    `has_been_modified` smallint(6) NOT NULL default '0',
550 -                    `varname` varchar(255) NOT NULL default '',
551 -                    `varvalue` varchar(255) NOT NULL default '',
552 -                    PRIMARY KEY  (`customvariablestatus_id`),
553 -                    UNIQUE KEY `object_id_2` (`object_id`,`varname`),
554 -                    KEY `varname` (`varname`)
555 -                  ) ENGINE=InnoDB COMMENT='Custom variable status information';";
556 +               $sql[] = "
557 +                       CREATE TABLE IF NOT EXISTS `npc_customvariablestatus` (
558 +                         `customvariablestatus_id` int(11) NOT NULL auto_increment,
559 +                         `instance_id` smallint(6) NOT NULL default '0',
560 +                         `object_id` int(11) NOT NULL default '0',
561 +                         `status_update_time` datetime NOT NULL default '0000-00-00 00:00:00',
562 +                         `has_been_modified` smallint(6) NOT NULL default '0',
563 +                         `varname` varchar(255) character set latin1 NOT NULL default '',
564 +                         `varvalue` varchar(255) character set latin1 NOT NULL default '',
565 +                         PRIMARY KEY  (`customvariablestatus_id`),
566 +                         UNIQUE KEY `object_id_2` (`object_id`,`varname`),
567 +                         KEY `varname` (`varname`)
568 +                       ) ENGINE=MyISAM COMMENT='Custom variable status information';
569 +               ";
570      }
571  
572      if (!in_array('npc_dbversion', $tables)) {
573 -        $sql[] = "CREATE TABLE `npc_dbversion` (
574 -                    `name` varchar(10) NOT NULL default '',
575 -                    `version` varchar(10) NOT NULL default ''
576 -                  ) ENGINE=InnoDB;";
577 +               $sql[] = "
578 +                       CREATE TABLE IF NOT EXISTS `npc_dbversion` (
579 +                         `name` varchar(10) character set latin1 NOT NULL default '',
580 +                         `version` varchar(10) character set latin1 NOT NULL default ''
581 +                       ) ENGINE=MyISAM;
582 +               ";
583      }
584  
585      if (!in_array('npc_downtimehistory', $tables)) {
586 -        $sql[] = "CREATE TABLE `npc_downtimehistory` (
587 -                    `downtimehistory_id` int(11) NOT NULL auto_increment,
588 -                    `instance_id` smallint(6) NOT NULL default '0',
589 -                    `downtime_type` smallint(6) NOT NULL default '0',
590 -                    `object_id` int(11) NOT NULL default '0',
591 -                    `entry_time` datetime NOT NULL default '0000-00-00 00:00:00',
592 -                    `author_name` varchar(64) NOT NULL default '',
593 -                    `comment_data` varchar(255) NOT NULL default '',
594 -                    `internal_downtime_id` int(11) NOT NULL default '0',
595 -                    `triggered_by_id` int(11) NOT NULL default '0',
596 -                    `is_fixed` smallint(6) NOT NULL default '0',
597 -                    `duration` smallint(6) NOT NULL default '0',
598 -                    `scheduled_start_time` datetime NOT NULL default '0000-00-00 00:00:00',
599 -                    `scheduled_end_time` datetime NOT NULL default '0000-00-00 00:00:00',
600 -                    `was_started` smallint(6) NOT NULL default '0',
601 -                    `actual_start_time` datetime NOT NULL default '0000-00-00 00:00:00',
602 -                    `actual_start_time_usec` int(11) NOT NULL default '0',
603 -                    `actual_end_time` datetime NOT NULL default '0000-00-00 00:00:00',
604 -                    `actual_end_time_usec` int(11) NOT NULL default '0',
605 -                    `was_cancelled` smallint(6) NOT NULL default '0',
606 -                    PRIMARY KEY  (`downtimehistory_id`),
607 -                    UNIQUE KEY `instance_id` (`instance_id`,`object_id`,`entry_time`,`internal_downtime_id`)
608 -                  ) ENGINE=InnoDB COMMENT='Historical scheduled host and service downtime';";
609 +               $sql[] = "
610 +                       CREATE TABLE IF NOT EXISTS `npc_downtimehistory` (
611 +                         `downtimehistory_id` int(11) NOT NULL auto_increment,
612 +                         `instance_id` smallint(6) NOT NULL default '0',
613 +                         `downtime_type` smallint(6) NOT NULL default '0',
614 +                         `object_id` int(11) NOT NULL default '0',
615 +                         `entry_time` datetime NOT NULL default '0000-00-00 00:00:00',
616 +                         `author_name` varchar(64) character set latin1 NOT NULL default '',
617 +                         `comment_data` varchar(255) character set latin1 NOT NULL default '',
618 +                         `internal_downtime_id` int(11) NOT NULL default '0',
619 +                         `triggered_by_id` int(11) NOT NULL default '0',
620 +                         `is_fixed` smallint(6) NOT NULL default '0',
621 +                         `duration` smallint(6) NOT NULL default '0',
622 +                         `scheduled_start_time` datetime NOT NULL default '0000-00-00 00:00:00',
623 +                         `scheduled_end_time` datetime NOT NULL default '0000-00-00 00:00:00',
624 +                         `was_started` smallint(6) NOT NULL default '0',
625 +                         `actual_start_time` datetime NOT NULL default '0000-00-00 00:00:00',
626 +                         `actual_start_time_usec` int(11) NOT NULL default '0',
627 +                         `actual_end_time` datetime NOT NULL default '0000-00-00 00:00:00',
628 +                         `actual_end_time_usec` int(11) NOT NULL default '0',
629 +                         `was_cancelled` smallint(6) NOT NULL default '0',
630 +                         PRIMARY KEY  (`downtimehistory_id`),
631 +                         UNIQUE KEY `instance_id` (`instance_id`,`object_id`,`entry_time`,`internal_downtime_id`)
632 +                       ) ENGINE=MyISAM  COMMENT='Historical scheduled host and service downtime';
633 +               ";
634      }
635  
636      if (!in_array('npc_eventhandlers', $tables)) {
637 -        $sql[] = "CREATE TABLE `npc_eventhandlers` (
638 -                    `eventhandler_id` int(11) NOT NULL auto_increment,
639 -                    `instance_id` smallint(6) NOT NULL default '0',
640 -                    `eventhandler_type` smallint(6) NOT NULL default '0',
641 -                    `object_id` int(11) NOT NULL default '0',
642 -                    `state` smallint(6) NOT NULL default '0',
643 -                    `state_type` smallint(6) NOT NULL default '0',
644 -                    `start_time` datetime NOT NULL default '0000-00-00 00:00:00',
645 -                    `start_time_usec` int(11) NOT NULL default '0',
646 -                    `end_time` datetime NOT NULL default '0000-00-00 00:00:00',
647 -                    `end_time_usec` int(11) NOT NULL default '0',
648 -                    `command_object_id` int(11) NOT NULL default '0',
649 -                    `command_args` varchar(255) NOT NULL default '',
650 -                    `command_line` varchar(255) NOT NULL default '',
651 -                    `timeout` smallint(6) NOT NULL default '0',
652 -                    `early_timeout` smallint(6) NOT NULL default '0',
653 -                    `execution_time` double NOT NULL default '0',
654 -                    `return_code` smallint(6) NOT NULL default '0',
655 -                    `output` varchar(255) NOT NULL default '',
656 -                    PRIMARY KEY  (`eventhandler_id`),
657 -                    UNIQUE KEY `instance_id` (`instance_id`,`object_id`,`start_time`,`start_time_usec`)
658 -                  ) ENGINE=InnoDB COMMENT='Historical host and service event handlers';";
659 +               $sql[] = "
660 +                       CREATE TABLE IF NOT EXISTS `npc_eventhandlers` (
661 +                         `eventhandler_id` int(11) NOT NULL auto_increment,
662 +                         `instance_id` smallint(6) NOT NULL default '0',
663 +                         `eventhandler_type` smallint(6) NOT NULL default '0',
664 +                         `object_id` int(11) NOT NULL default '0',
665 +                         `state` smallint(6) NOT NULL default '0',
666 +                         `state_type` smallint(6) NOT NULL default '0',
667 +                         `start_time` datetime NOT NULL default '0000-00-00 00:00:00',
668 +                         `start_time_usec` int(11) NOT NULL default '0',
669 +                         `end_time` datetime NOT NULL default '0000-00-00 00:00:00',
670 +                         `end_time_usec` int(11) NOT NULL default '0',
671 +                         `command_object_id` int(11) NOT NULL default '0',
672 +                         `command_args` varchar(255) character set latin1 NOT NULL default '',
673 +                         `command_line` varchar(255) character set latin1 NOT NULL default '',
674 +                         `timeout` smallint(6) NOT NULL default '0',
675 +                         `early_timeout` smallint(6) NOT NULL default '0',
676 +                         `execution_time` double NOT NULL default '0',
677 +                         `return_code` smallint(6) NOT NULL default '0',
678 +                         `output` varchar(255) character set latin1 NOT NULL default '',
679 +                         `long_output` TEXT NOT NULL default '',
680 +                         PRIMARY KEY  (`eventhandler_id`),
681 +                         UNIQUE KEY `instance_id` (`instance_id`,`object_id`,`start_time`,`start_time_usec`)
682 +                       ) ENGINE=MyISAM COMMENT='Historical host and service event handlers';
683 +               ";
684      }
685  
686      if (!in_array('npc_externalcommands', $tables)) {
687 -        $sql[] = "CREATE TABLE `npc_externalcommands` (
688 -                    `externalcommand_id` int(11) NOT NULL auto_increment,
689 -                    `instance_id` smallint(6) NOT NULL default '0',
690 -                    `entry_time` datetime NOT NULL default '0000-00-00 00:00:00',
691 -                    `command_type` smallint(6) NOT NULL default '0',
692 -                    `command_name` varchar(128) NOT NULL default '',
693 -                    `command_args` varchar(255) NOT NULL default '',
694 -                    PRIMARY KEY  (`externalcommand_id`)
695 -                  ) ENGINE=InnoDB COMMENT='Historical record of processed external commands';";
696 +               $sql[] = "
697 +                       CREATE TABLE IF NOT EXISTS `npc_externalcommands` (
698 +                         `externalcommand_id` int(11) NOT NULL auto_increment,
699 +                         `instance_id` smallint(6) NOT NULL default '0',
700 +                         `entry_time` datetime NOT NULL default '0000-00-00 00:00:00',
701 +                         `command_type` smallint(6) NOT NULL default '0',
702 +                         `command_name` varchar(128) character set latin1 NOT NULL default '',
703 +                         `command_args` varchar(255) character set latin1 NOT NULL default '',
704 +                         PRIMARY KEY  (`externalcommand_id`)
705 +                       ) ENGINE=MyISAM  COMMENT='Historical record of processed external commands';
706 +               ";
707      }
708  
709      if (!in_array('npc_flappinghistory', $tables)) {
710 -        $sql[] = "CREATE TABLE `npc_flappinghistory` (
711 -                    `flappinghistory_id` int(11) NOT NULL auto_increment,
712 -                    `instance_id` smallint(6) NOT NULL default '0',
713 -                    `event_time` datetime NOT NULL default '0000-00-00 00:00:00',
714 -                    `event_time_usec` int(11) NOT NULL default '0',
715 -                    `event_type` smallint(6) NOT NULL default '0',
716 -                    `reason_type` smallint(6) NOT NULL default '0',
717 -                    `flapping_type` smallint(6) NOT NULL default '0',
718 -                    `object_id` int(11) NOT NULL default '0',
719 -                    `percent_state_change` double NOT NULL default '0',
720 -                    `low_threshold` double NOT NULL default '0',
721 -                    `high_threshold` double NOT NULL default '0',
722 -                    `comment_time` datetime NOT NULL default '0000-00-00 00:00:00',
723 -                    `internal_comment_id` int(11) NOT NULL default '0',
724 -                    PRIMARY KEY  (`flappinghistory_id`)
725 -                  ) ENGINE=InnoDB COMMENT='Current and historical record of host and service flapping';";
726 +        $sql[] = "
727 +                       CREATE TABLE IF NOT EXISTS `npc_flappinghistory` (
728 +                         `flappinghistory_id` int(11) NOT NULL auto_increment,
729 +                         `instance_id` smallint(6) NOT NULL default '0',
730 +                         `event_time` datetime NOT NULL default '0000-00-00 00:00:00',
731 +                         `event_time_usec` int(11) NOT NULL default '0',
732 +                         `event_type` smallint(6) NOT NULL default '0',
733 +                         `reason_type` smallint(6) NOT NULL default '0',
734 +                         `flapping_type` smallint(6) NOT NULL default '0',
735 +                         `object_id` int(11) NOT NULL default '0',
736 +                         `percent_state_change` double NOT NULL default '0',
737 +                         `low_threshold` double NOT NULL default '0',
738 +                         `high_threshold` double NOT NULL default '0',
739 +                         `comment_time` datetime NOT NULL default '0000-00-00 00:00:00',
740 +                         `internal_comment_id` int(11) NOT NULL default '0',
741 +                         PRIMARY KEY  (`flappinghistory_id`)
742 +                       ) ENGINE=MyISAM  COMMENT='Current and historical record of host and service flapping';
743 +               ";
744      }
745  
746      if (!in_array('npc_host_contactgroups', $tables)) {
747 -        $sql[] = "CREATE TABLE `npc_host_contactgroups` (
748 -                    `host_contactgroup_id` int(11) NOT NULL auto_increment,
749 -                    `instance_id` smallint(6) NOT NULL default '0',
750 -                    `host_id` int(11) NOT NULL default '0',
751 -                    `contactgroup_object_id` int(11) NOT NULL default '0',
752 -                    PRIMARY KEY  (`host_contactgroup_id`),
753 -                    UNIQUE KEY `instance_id` (`host_id`,`contactgroup_object_id`)
754 -                  ) ENGINE=InnoDB COMMENT='Host contact groups';";
755 +        $sql[] = "
756 +                       CREATE TABLE IF NOT EXISTS `npc_host_contactgroups` (
757 +                         `host_contactgroup_id` int(11) NOT NULL auto_increment,
758 +                         `instance_id` smallint(6) NOT NULL default '0',
759 +                         `host_id` int(11) NOT NULL default '0',
760 +                         `contactgroup_object_id` int(11) NOT NULL default '0',
761 +                         PRIMARY KEY  (`host_contactgroup_id`),
762 +                         UNIQUE KEY `instance_id` (`host_id`,`contactgroup_object_id`)
763 +                       ) ENGINE=MyISAM  COMMENT='Host contact groups';
764 +               ";
765      }
766  
767      if (!in_array('npc_host_contacts', $tables)) {
768 -        $sql[] = "CREATE TABLE `npc_host_contacts` (
769 -                    `host_contact_id` int(11) NOT NULL auto_increment,
770 -                    `instance_id` smallint(6) NOT NULL default '0',
771 -                    `host_id` int(11) NOT NULL default '0',
772 -                    `contact_object_id` int(11) NOT NULL default '0',
773 -                    PRIMARY KEY  (`host_contact_id`),
774 -                    UNIQUE KEY `instance_id` (`instance_id`,`host_id`,`contact_object_id`)
775 -                  ) ENGINE=InnoDB;";
776 +        $sql[] = "
777 +                       CREATE TABLE IF NOT EXISTS `npc_host_contacts` (
778 +                         `host_contact_id` int(11) NOT NULL auto_increment,
779 +                         `instance_id` smallint(6) NOT NULL default '0',
780 +                         `host_id` int(11) NOT NULL default '0',
781 +                         `contact_object_id` int(11) NOT NULL default '0',
782 +                         PRIMARY KEY  (`host_contact_id`),
783 +                         UNIQUE KEY `instance_id` (`instance_id`,`host_id`,`contact_object_id`)
784 +                       ) ENGINE=MyISAM ;
785 +               ";
786      }
787  
788      if (!in_array('npc_host_parenthosts', $tables)) {
789 -        $sql[] = "CREATE TABLE `npc_host_parenthosts` (
790 -                    `host_parenthost_id` int(11) NOT NULL auto_increment,
791 -                    `instance_id` smallint(6) NOT NULL default '0',
792 -                    `host_id` int(11) NOT NULL default '0',
793 -                    `parent_host_object_id` int(11) NOT NULL default '0',
794 -                    PRIMARY KEY  (`host_parenthost_id`),
795 -                    UNIQUE KEY `instance_id` (`host_id`,`parent_host_object_id`)
796 -                  ) ENGINE=InnoDB COMMENT='Parent hosts';";
797 +        $sql[] = "
798 +                       CREATE TABLE IF NOT EXISTS `npc_host_parenthosts` (
799 +                         `host_parenthost_id` int(11) NOT NULL auto_increment,
800 +                         `instance_id` smallint(6) NOT NULL default '0',
801 +                         `host_id` int(11) NOT NULL default '0',
802 +                         `parent_host_object_id` int(11) NOT NULL default '0',
803 +                         PRIMARY KEY  (`host_parenthost_id`),
804 +                         UNIQUE KEY `instance_id` (`host_id`,`parent_host_object_id`)
805 +                       ) ENGINE=MyISAM  COMMENT='Parent hosts';
806 +               ";
807      }
808  
809      if (!in_array('npc_hostchecks', $tables)) {
810 -        $sql[] = "CREATE TABLE `npc_hostchecks` (
811 -                    `hostcheck_id` int(11) NOT NULL auto_increment,
812 -                    `instance_id` smallint(6) NOT NULL default '0',
813 -                    `host_object_id` int(11) NOT NULL default '0',
814 -                    `check_type` smallint(6) NOT NULL default '0',
815 -                    `is_raw_check` smallint(6) NOT NULL default '0',
816 -                    `current_check_attempt` smallint(6) NOT NULL default '0',
817 -                    `max_check_attempts` smallint(6) NOT NULL default '0',
818 -                    `state` smallint(6) NOT NULL default '0',
819 -                    `state_type` smallint(6) NOT NULL default '0',
820 -                    `start_time` datetime NOT NULL default '0000-00-00 00:00:00',
821 -                    `start_time_usec` int(11) NOT NULL default '0',
822 -                    `end_time` datetime NOT NULL default '0000-00-00 00:00:00',
823 -                    `end_time_usec` int(11) NOT NULL default '0',
824 -                    `command_object_id` int(11) NOT NULL default '0',
825 -                    `command_args` varchar(255) NOT NULL default '',
826 -                    `command_line` varchar(255) NOT NULL default '',
827 -                    `timeout` smallint(6) NOT NULL default '0',
828 -                    `early_timeout` smallint(6) NOT NULL default '0',
829 -                    `execution_time` double NOT NULL default '0',
830 -                    `latency` double NOT NULL default '0',
831 -                    `return_code` smallint(6) NOT NULL default '0',
832 -                    `output` varchar(255) NOT NULL default '',
833 -                    `perfdata` varchar(255) NOT NULL default '',
834 -                    PRIMARY KEY  (`hostcheck_id`),
835 -                    UNIQUE KEY `instance_id` (`instance_id`,`host_object_id`,`start_time`,`start_time_usec`)
836 -                  ) ENGINE=InnoDB COMMENT='Historical host checks';";
837 +        $sql[] = "
838 +                       CREATE TABLE IF NOT EXISTS `npc_hostchecks` (
839 +                         `hostcheck_id` int(11) NOT NULL auto_increment,
840 +                         `instance_id` smallint(6) NOT NULL default '0',
841 +                         `host_object_id` int(11) NOT NULL default '0',
842 +                         `check_type` smallint(6) NOT NULL default '0',
843 +                         `is_raw_check` smallint(6) NOT NULL default '0',
844 +                         `current_check_attempt` smallint(6) NOT NULL default '0',
845 +                         `max_check_attempts` smallint(6) NOT NULL default '0',
846 +                         `state` smallint(6) NOT NULL default '0',
847 +                         `state_type` smallint(6) NOT NULL default '0',
848 +                         `start_time` datetime NOT NULL default '0000-00-00 00:00:00',
849 +                         `start_time_usec` int(11) NOT NULL default '0',
850 +                         `end_time` datetime NOT NULL default '0000-00-00 00:00:00',
851 +                         `end_time_usec` int(11) NOT NULL default '0',
852 +                         `command_object_id` int(11) NOT NULL default '0',
853 +                         `command_args` varchar(255) character set latin1 NOT NULL default '',
854 +                         `command_line` varchar(255) character set latin1 NOT NULL default '',
855 +                         `timeout` smallint(6) NOT NULL default '0',
856 +                         `early_timeout` smallint(6) NOT NULL default '0',
857 +                         `execution_time` double NOT NULL default '0',
858 +                         `latency` double NOT NULL default '0',
859 +                         `return_code` smallint(6) NOT NULL default '0',
860 +                         `output` varchar(255) character set latin1 NOT NULL default '',
861 +                         `long_output` TEXT NOT NULL default '',
862 +                         `perfdata` TEXT character set latin1 NOT NULL default '',
863 +                         PRIMARY KEY  (`hostcheck_id`),
864 +                         UNIQUE KEY `instance_id` (`instance_id`,`host_object_id`,`start_time`,`start_time_usec`)
865 +                       ) ENGINE=MyISAM  COMMENT='Historical host checks';
866 +               ";
867      }
868  
869      if (!in_array('npc_hostdependencies', $tables)) {
870 -        $sql[] = "CREATE TABLE `npc_hostdependencies` (
871 -                    `hostdependency_id` int(11) NOT NULL auto_increment,
872 -                    `instance_id` smallint(6) NOT NULL default '0',
873 -                    `config_type` smallint(6) NOT NULL default '0',
874 -                    `host_object_id` int(11) NOT NULL default '0',
875 -                    `dependent_host_object_id` int(11) NOT NULL default '0',
876 -                    `dependency_type` smallint(6) NOT NULL default '0',
877 -                    `inherits_parent` smallint(6) NOT NULL default '0',
878 -                    `timeperiod_object_id` int(11) NOT NULL default '0',
879 -                    `fail_on_up` smallint(6) NOT NULL default '0',
880 -                    `fail_on_down` smallint(6) NOT NULL default '0',
881 -                    `fail_on_unreachable` smallint(6) NOT NULL default '0',
882 -                    PRIMARY KEY  (`hostdependency_id`),
883 -                    UNIQUE KEY `instance_id` (`instance_id`,`config_type`,`host_object_id`,`dependent_host_object_id`,`dependency_type`,`inherits_parent`,`fail_on_up`,`fail_on_down`,`fail_on_unreachable`)
884 -                  ) ENGINE=InnoDB COMMENT='Host dependency definitions';";
885 +        $sql[] = "
886 +                       CREATE TABLE IF NOT EXISTS `npc_hostdependencies` (
887 +                         `hostdependency_id` int(11) NOT NULL auto_increment,
888 +                         `instance_id` smallint(6) NOT NULL default '0',
889 +                         `config_type` smallint(6) NOT NULL default '0',
890 +                         `host_object_id` int(11) NOT NULL default '0',
891 +                         `dependent_host_object_id` int(11) NOT NULL default '0',
892 +                         `dependency_type` smallint(6) NOT NULL default '0',
893 +                         `inherits_parent` smallint(6) NOT NULL default '0',
894 +                         `timeperiod_object_id` int(11) NOT NULL default '0',
895 +                         `fail_on_up` smallint(6) NOT NULL default '0',
896 +                         `fail_on_down` smallint(6) NOT NULL default '0',
897 +                         `fail_on_unreachable` smallint(6) NOT NULL default '0',
898 +                         PRIMARY KEY  (`hostdependency_id`),
899 +                         UNIQUE KEY `instance_id` (`instance_id`,`config_type`,`host_object_id`,`dependent_host_object_id`,`dependency_type`,`inherits_parent`,`fail_on_up`,`fail_on_down`,`fail_on_unreachable`)
900 +                       ) ENGINE=MyISAM COMMENT='Host dependency definitions';
901 +               ";
902      }
903  
904      if (!in_array('npc_hostescalation_contactgroups', $tables)) {
905 -        $sql[] = "CREATE TABLE `npc_hostescalation_contactgroups` (
906 -                    `hostescalation_contactgroup_id` int(11) NOT NULL auto_increment,
907 -                    `instance_id` smallint(6) NOT NULL default '0',
908 -                    `hostescalation_id` int(11) NOT NULL default '0',
909 -                    `contactgroup_object_id` int(11) NOT NULL default '0',
910 -                    PRIMARY KEY  (`hostescalation_contactgroup_id`),
911 -                    UNIQUE KEY `instance_id` (`hostescalation_id`,`contactgroup_object_id`)
912 -                  ) ENGINE=InnoDB COMMENT='Host escalation contact groups';";
913 +        $sql[] = "
914 +                       CREATE TABLE IF NOT EXISTS `npc_hostescalation_contactgroups` (
915 +                         `hostescalation_contactgroup_id` int(11) NOT NULL auto_increment,
916 +                         `instance_id` smallint(6) NOT NULL default '0',
917 +                         `hostescalation_id` int(11) NOT NULL default '0',
918 +                         `contactgroup_object_id` int(11) NOT NULL default '0',
919 +                         PRIMARY KEY  (`hostescalation_contactgroup_id`),
920 +                         UNIQUE KEY `instance_id` (`hostescalation_id`,`contactgroup_object_id`)
921 +                       ) ENGINE=MyISAM  COMMENT='Host escalation contact groups';
922 +               ";
923      }
924  
925      if (!in_array('npc_hostescalation_contacts', $tables)) {
926 -        $sql[] = "CREATE TABLE `npc_hostescalation_contacts` (
927 -                    `hostescalation_contact_id` int(11) NOT NULL auto_increment,
928 -                    `instance_id` smallint(6) NOT NULL default '0',
929 -                    `hostescalation_id` int(11) NOT NULL default '0',
930 -                    `contact_object_id` int(11) NOT NULL default '0',
931 -                    PRIMARY KEY  (`hostescalation_contact_id`),
932 -                    UNIQUE KEY `instance_id` (`instance_id`,`hostescalation_id`,`contact_object_id`)
933 -                  ) ENGINE=InnoDB;";
934 +        $sql[] = "
935 +                       CREATE TABLE IF NOT EXISTS `npc_hostescalation_contacts` (
936 +                         `hostescalation_contact_id` int(11) NOT NULL auto_increment,
937 +                         `instance_id` smallint(6) NOT NULL default '0',
938 +                         `hostescalation_id` int(11) NOT NULL default '0',
939 +                         `contact_object_id` int(11) NOT NULL default '0',
940 +                         PRIMARY KEY  (`hostescalation_contact_id`),
941 +                         UNIQUE KEY `instance_id` (`instance_id`,`hostescalation_id`,`contact_object_id`)
942 +                       ) ENGINE=MyISAM ;
943 +               ";
944      }
945  
946      if (!in_array('npc_hostescalations', $tables)) {
947 -        $sql[] = "CREATE TABLE `npc_hostescalations` (
948 -                    `hostescalation_id` int(11) NOT NULL auto_increment,
949 -                    `instance_id` smallint(6) NOT NULL default '0',
950 -                    `config_type` smallint(6) NOT NULL default '0',
951 -                    `host_object_id` int(11) NOT NULL default '0',
952 -                    `timeperiod_object_id` int(11) NOT NULL default '0',
953 -                    `first_notification` smallint(6) NOT NULL default '0',
954 -                    `last_notification` smallint(6) NOT NULL default '0',
955 -                    `notification_interval` double NOT NULL default '0',
956 -                    `escalate_on_recovery` smallint(6) NOT NULL default '0',
957 -                    `escalate_on_down` smallint(6) NOT NULL default '0',
958 -                    `escalate_on_unreachable` smallint(6) NOT NULL default '0',
959 -                    PRIMARY KEY  (`hostescalation_id`),
960 -                    UNIQUE KEY `instance_id` (`instance_id`,`config_type`,`host_object_id`,`timeperiod_object_id`,`first_notification`,`last_notification`)
961 -                  ) ENGINE=InnoDB COMMENT='Host escalation definitions';";
962 +        $sql[] = "
963 +                       CREATE TABLE IF NOT EXISTS `npc_hostescalations` (
964 +                         `hostescalation_id` int(11) NOT NULL auto_increment,
965 +                         `instance_id` smallint(6) NOT NULL default '0',
966 +                         `config_type` smallint(6) NOT NULL default '0',
967 +                         `host_object_id` int(11) NOT NULL default '0',
968 +                         `timeperiod_object_id` int(11) NOT NULL default '0',
969 +                         `first_notification` smallint(6) NOT NULL default '0',
970 +                         `last_notification` smallint(6) NOT NULL default '0',
971 +                         `notification_interval` double NOT NULL default '0',
972 +                         `escalate_on_recovery` smallint(6) NOT NULL default '0',
973 +                         `escalate_on_down` smallint(6) NOT NULL default '0',
974 +                         `escalate_on_unreachable` smallint(6) NOT NULL default '0',
975 +                         PRIMARY KEY  (`hostescalation_id`),
976 +                         UNIQUE KEY `instance_id` (`instance_id`,`config_type`,`host_object_id`,`timeperiod_object_id`,`first_notification`,`last_notification`)
977 +                       ) ENGINE=MyISAM  COMMENT='Host escalation definitions';
978 +               ";
979      }
980  
981      if (!in_array('npc_hostgroup_members', $tables)) {
982 -        $sql[] = "CREATE TABLE `npc_hostgroup_members` (
983 -                    `hostgroup_member_id` int(11) NOT NULL auto_increment,
984 -                    `instance_id` smallint(6) NOT NULL default '0',
985 -                    `hostgroup_id` int(11) NOT NULL default '0',
986 -                    `host_object_id` int(11) NOT NULL default '0',
987 -                    PRIMARY KEY  (`hostgroup_member_id`),
988 -                    UNIQUE KEY `instance_id` (`hostgroup_id`,`host_object_id`)
989 -                  ) ENGINE=InnoDB COMMENT='Hostgroup members';";
990 +        $sql[] = "
991 +                       CREATE TABLE IF NOT EXISTS `npc_hostgroup_members` (
992 +                         `hostgroup_member_id` int(11) NOT NULL auto_increment,
993 +                         `instance_id` smallint(6) NOT NULL default '0',
994 +                         `hostgroup_id` int(11) NOT NULL default '0',
995 +                         `host_object_id` int(11) NOT NULL default '0',
996 +                         PRIMARY KEY  (`hostgroup_member_id`),
997 +                         UNIQUE KEY `instance_id` (`hostgroup_id`,`host_object_id`)
998 +                       ) ENGINE=MyISAM  COMMENT='Hostgroup members';
999 +               ";
1000      }
1001  
1002      if (!in_array('npc_hostgroups', $tables)) {
1003 -        $sql[] = "CREATE TABLE `npc_hostgroups` (
1004 -                    `hostgroup_id` int(11) NOT NULL auto_increment,
1005 -                    `instance_id` smallint(6) NOT NULL default '0',
1006 -                    `config_type` smallint(6) NOT NULL default '0',
1007 -                    `hostgroup_object_id` int(11) NOT NULL default '0',
1008 -                    `alias` varchar(255) NOT NULL default '',
1009 -                    PRIMARY KEY  (`hostgroup_id`),
1010 -                    UNIQUE KEY `instance_id` (`instance_id`,`hostgroup_object_id`)
1011 -                  ) ENGINE=InnoDB COMMENT='Hostgroup definitions';";
1012 +        $sql[] = "
1013 +                       CREATE TABLE IF NOT EXISTS `npc_hostgroups` (
1014 +                         `hostgroup_id` int(11) NOT NULL auto_increment,
1015 +                         `instance_id` smallint(6) NOT NULL default '0',
1016 +                         `config_type` smallint(6) NOT NULL default '0',
1017 +                         `hostgroup_object_id` int(11) NOT NULL default '0',
1018 +                         `alias` varchar(255) character set latin1 NOT NULL default '',
1019 +                         PRIMARY KEY  (`hostgroup_id`),
1020 +                         UNIQUE KEY `instance_id` (`instance_id`,`hostgroup_object_id`)
1021 +                       ) ENGINE=MyISAM  COMMENT='Hostgroup definitions';
1022 +               ";
1023      }
1024  
1025      if (!in_array('npc_hosts', $tables)) {
1026 -        $sql[] = "CREATE TABLE `npc_hosts` (
1027 -                    `host_id` int(11) NOT NULL auto_increment,
1028 -                    `instance_id` smallint(6) NOT NULL default '0',
1029 -                    `config_type` smallint(6) NOT NULL default '0',
1030 -                    `host_object_id` int(11) NOT NULL default '0',
1031 -                    `alias` varchar(64) NOT NULL default '',
1032 -                    `display_name` varchar(64) NOT NULL default '',
1033 -                    `address` varchar(128) NOT NULL default '',
1034 -                    `check_command_object_id` int(11) NOT NULL default '0',
1035 -                    `check_command_args` varchar(255) NOT NULL default '',
1036 -                    `eventhandler_command_object_id` int(11) NOT NULL default '0',
1037 -                    `eventhandler_command_args` varchar(255) NOT NULL default '',
1038 -                    `notification_timeperiod_object_id` int(11) NOT NULL default '0',
1039 -                    `check_timeperiod_object_id` int(11) NOT NULL default '0',
1040 -                    `failure_prediction_options` varchar(64) NOT NULL default '',
1041 -                    `check_interval` double NOT NULL default '0',
1042 -                    `retry_interval` double NOT NULL default '0',
1043 -                    `max_check_attempts` smallint(6) NOT NULL default '0',
1044 -                    `first_notification_delay` double NOT NULL default '0',
1045 -                    `notification_interval` double NOT NULL default '0',
1046 -                    `notify_on_down` smallint(6) NOT NULL default '0',
1047 -                    `notify_on_unreachable` smallint(6) NOT NULL default '0',
1048 -                    `notify_on_recovery` smallint(6) NOT NULL default '0',
1049 -                    `notify_on_flapping` smallint(6) NOT NULL default '0',
1050 -                    `notify_on_downtime` smallint(6) NOT NULL default '0',
1051 -                    `stalk_on_up` smallint(6) NOT NULL default '0',
1052 -                    `stalk_on_down` smallint(6) NOT NULL default '0',
1053 -                    `stalk_on_unreachable` smallint(6) NOT NULL default '0',
1054 -                    `flap_detection_enabled` smallint(6) NOT NULL default '0',
1055 -                    `flap_detection_on_up` smallint(6) NOT NULL default '0',
1056 -                    `flap_detection_on_down` smallint(6) NOT NULL default '0',
1057 -                    `flap_detection_on_unreachable` smallint(6) NOT NULL default '0',
1058 -                    `low_flap_threshold` double NOT NULL default '0',
1059 -                    `high_flap_threshold` double NOT NULL default '0',
1060 -                    `process_performance_data` smallint(6) NOT NULL default '0',
1061 -                    `freshness_checks_enabled` smallint(6) NOT NULL default '0',
1062 -                    `freshness_threshold` smallint(6) NOT NULL default '0',
1063 -                    `passive_checks_enabled` smallint(6) NOT NULL default '0',
1064 -                    `event_handler_enabled` smallint(6) NOT NULL default '0',
1065 -                    `active_checks_enabled` smallint(6) NOT NULL default '0',
1066 -                    `retain_status_information` smallint(6) NOT NULL default '0',
1067 -                    `retain_nonstatus_information` smallint(6) NOT NULL default '0',
1068 -                    `notifications_enabled` smallint(6) NOT NULL default '0',
1069 -                    `obsess_over_host` smallint(6) NOT NULL default '0',
1070 -                    `failure_prediction_enabled` smallint(6) NOT NULL default '0',
1071 -                    `notes` varchar(255) NOT NULL default '',
1072 -                    `notes_url` varchar(255) NOT NULL default '',
1073 -                    `action_url` varchar(255) NOT NULL default '',
1074 -                    `icon_image` varchar(255) NOT NULL default '',
1075 -                    `icon_image_alt` varchar(255) NOT NULL default '',
1076 -                    `vrml_image` varchar(255) NOT NULL default '',
1077 -                    `statusmap_image` varchar(255) NOT NULL default '',
1078 -                    `have_2d_coords` smallint(6) NOT NULL default '0',
1079 -                    `x_2d` smallint(6) NOT NULL default '0',
1080 -                    `y_2d` smallint(6) NOT NULL default '0',
1081 -                    `have_3d_coords` smallint(6) NOT NULL default '0',
1082 -                    `x_3d` double NOT NULL default '0',
1083 -                    `y_3d` double NOT NULL default '0',
1084 -                    `z_3d` double NOT NULL default '0',
1085 -                    PRIMARY KEY  (`host_id`),
1086 -                    UNIQUE KEY `instance_id` (`instance_id`,`config_type`,`host_object_id`),
1087 -                    KEY `idx1` (`host_object_id`),
1088 -                    KEY `idx2` (`config_type`)
1089 -                  ) ENGINE=InnoDB COMMENT='Host definitions';";
1090 +        $sql[] = "
1091 +                       CREATE TABLE IF NOT EXISTS `npc_hosts` (
1092 +                         `host_id` int(11) NOT NULL auto_increment,
1093 +                         `instance_id` smallint(6) NOT NULL default '0',
1094 +                         `config_type` smallint(6) NOT NULL default '0',
1095 +                         `host_object_id` int(11) NOT NULL default '0',
1096 +                         `alias` varchar(64) character set latin1 NOT NULL default '',
1097 +                         `display_name` varchar(64) character set latin1 NOT NULL default '',
1098 +                         `address` varchar(128) character set latin1 NOT NULL default '',
1099 +                         `check_command_object_id` int(11) NOT NULL default '0',
1100 +                         `check_command_args` varchar(255) character set latin1 NOT NULL default '',
1101 +                         `eventhandler_command_object_id` int(11) NOT NULL default '0',
1102 +                         `eventhandler_command_args` varchar(255) character set latin1 NOT NULL default '',
1103 +                         `notification_timeperiod_object_id` int(11) NOT NULL default '0',
1104 +                         `check_timeperiod_object_id` int(11) NOT NULL default '0',
1105 +                         `failure_prediction_options` varchar(64) character set latin1 NOT NULL default '',
1106 +                         `check_interval` double NOT NULL default '0',
1107 +                         `retry_interval` double NOT NULL default '0',
1108 +                         `max_check_attempts` smallint(6) NOT NULL default '0',
1109 +                         `first_notification_delay` double NOT NULL default '0',
1110 +                         `notification_interval` double NOT NULL default '0',
1111 +                         `notify_on_down` smallint(6) NOT NULL default '0',
1112 +                         `notify_on_unreachable` smallint(6) NOT NULL default '0',
1113 +                         `notify_on_recovery` smallint(6) NOT NULL default '0',
1114 +                         `notify_on_flapping` smallint(6) NOT NULL default '0',
1115 +                         `notify_on_downtime` smallint(6) NOT NULL default '0',
1116 +                         `stalk_on_up` smallint(6) NOT NULL default '0',
1117 +                         `stalk_on_down` smallint(6) NOT NULL default '0',
1118 +                         `stalk_on_unreachable` smallint(6) NOT NULL default '0',
1119 +                         `flap_detection_enabled` smallint(6) NOT NULL default '0',
1120 +                         `flap_detection_on_up` smallint(6) NOT NULL default '0',
1121 +                         `flap_detection_on_down` smallint(6) NOT NULL default '0',
1122 +                         `flap_detection_on_unreachable` smallint(6) NOT NULL default '0',
1123 +                         `low_flap_threshold` double NOT NULL default '0',
1124 +                         `high_flap_threshold` double NOT NULL default '0',
1125 +                         `process_performance_data` smallint(6) NOT NULL default '0',
1126 +                         `freshness_checks_enabled` smallint(6) NOT NULL default '0',
1127 +                         `freshness_threshold` smallint(6) NOT NULL default '0',
1128 +                         `passive_checks_enabled` smallint(6) NOT NULL default '0',
1129 +                         `event_handler_enabled` smallint(6) NOT NULL default '0',
1130 +                         `active_checks_enabled` smallint(6) NOT NULL default '0',
1131 +                         `retain_status_information` smallint(6) NOT NULL default '0',
1132 +                         `retain_nonstatus_information` smallint(6) NOT NULL default '0',
1133 +                         `notifications_enabled` smallint(6) NOT NULL default '0',
1134 +                         `obsess_over_host` smallint(6) NOT NULL default '0',
1135 +                         `failure_prediction_enabled` smallint(6) NOT NULL default '0',
1136 +                         `notes` varchar(255) character set latin1 NOT NULL default '',
1137 +                         `notes_url` varchar(255) character set latin1 NOT NULL default '',
1138 +                         `action_url` varchar(255) character set latin1 NOT NULL default '',
1139 +                         `icon_image` varchar(255) character set latin1 NOT NULL default '',
1140 +                         `icon_image_alt` varchar(255) character set latin1 NOT NULL default '',
1141 +                         `vrml_image` varchar(255) character set latin1 NOT NULL default '',
1142 +                         `statusmap_image` varchar(255) character set latin1 NOT NULL default '',
1143 +                         `have_2d_coords` smallint(6) NOT NULL default '0',
1144 +                         `x_2d` smallint(6) NOT NULL default '0',
1145 +                         `y_2d` smallint(6) NOT NULL default '0',
1146 +                         `have_3d_coords` smallint(6) NOT NULL default '0',
1147 +                         `x_3d` double NOT NULL default '0',
1148 +                         `y_3d` double NOT NULL default '0',
1149 +                         `z_3d` double NOT NULL default '0',
1150 +                         PRIMARY KEY  (`host_id`),
1151 +                         UNIQUE KEY `instance_id` (`instance_id`,`config_type`,`host_object_id`),
1152 +                         KEY `host_object_id` (`host_object_id`)
1153 +                       ) ENGINE=MyISAM  COMMENT='Host definitions';
1154 +               ";
1155 +        $sql[] = "CREATE INDEX idx1 ON npc_hosts(host_object_id);";
1156 +        $sql[] = "CREATE INDEX idx2 ON npc_hosts(config_type);";
1157      }
1158  
1159      if (!in_array('npc_hoststatus', $tables)) {
1160 -        $sql[] = "CREATE TABLE `npc_hoststatus` (
1161 -                    `hoststatus_id` int(11) NOT NULL auto_increment,
1162 -                    `instance_id` smallint(6) NOT NULL default '0',
1163 -                    `host_object_id` int(11) NOT NULL default '0',
1164 -                    `status_update_time` datetime NOT NULL default '0000-00-00 00:00:00',
1165 -                    `output` varchar(255) NOT NULL default '',
1166 -                    `perfdata` varchar(255) NOT NULL default '',
1167 -                    `current_state` smallint(6) NOT NULL default '0',
1168 -                    `has_been_checked` smallint(6) NOT NULL default '0',
1169 -                    `should_be_scheduled` smallint(6) NOT NULL default '0',
1170 -                    `current_check_attempt` smallint(6) NOT NULL default '0',
1171 -                    `max_check_attempts` smallint(6) NOT NULL default '0',
1172 -                    `last_check` datetime NOT NULL default '0000-00-00 00:00:00',
1173 -                    `next_check` datetime NOT NULL default '0000-00-00 00:00:00',
1174 -                    `check_type` smallint(6) NOT NULL default '0',
1175 -                    `last_state_change` datetime NOT NULL default '0000-00-00 00:00:00',
1176 -                    `last_hard_state_change` datetime NOT NULL default '0000-00-00 00:00:00',
1177 -                    `last_hard_state` smallint(6) NOT NULL default '0',
1178 -                    `last_time_up` datetime NOT NULL default '0000-00-00 00:00:00',
1179 -                    `last_time_down` datetime NOT NULL default '0000-00-00 00:00:00',
1180 -                    `last_time_unreachable` datetime NOT NULL default '0000-00-00 00:00:00',
1181 -                    `state_type` smallint(6) NOT NULL default '0',
1182 -                    `last_notification` datetime NOT NULL default '0000-00-00 00:00:00',
1183 -                    `next_notification` datetime NOT NULL default '0000-00-00 00:00:00',
1184 -                    `no_more_notifications` smallint(6) NOT NULL default '0',
1185 -                    `notifications_enabled` smallint(6) NOT NULL default '0',
1186 -                    `problem_has_been_acknowledged` smallint(6) NOT NULL default '0',
1187 -                    `acknowledgement_type` smallint(6) NOT NULL default '0',
1188 -                    `current_notification_number` smallint(6) NOT NULL default '0',
1189 -                    `passive_checks_enabled` smallint(6) NOT NULL default '0',
1190 -                    `active_checks_enabled` smallint(6) NOT NULL default '0',
1191 -                    `event_handler_enabled` smallint(6) NOT NULL default '0',
1192 -                    `flap_detection_enabled` smallint(6) NOT NULL default '0',
1193 -                    `is_flapping` smallint(6) NOT NULL default '0',
1194 -                    `percent_state_change` double NOT NULL default '0',
1195 -                    `latency` double NOT NULL default '0',
1196 -                    `execution_time` double NOT NULL default '0',
1197 -                    `scheduled_downtime_depth` smallint(6) NOT NULL default '0',
1198 -                    `failure_prediction_enabled` smallint(6) NOT NULL default '0',
1199 -                    `process_performance_data` smallint(6) NOT NULL default '0',
1200 -                    `obsess_over_host` smallint(6) NOT NULL default '0',
1201 -                    `modified_host_attributes` int(11) NOT NULL default '0',
1202 -                    `event_handler` varchar(255) NOT NULL default '',
1203 -                    `check_command` varchar(255) NOT NULL default '',
1204 -                    `normal_check_interval` double NOT NULL default '0',
1205 -                    `retry_check_interval` double NOT NULL default '0',
1206 -                    `check_timeperiod_object_id` int(11) NOT NULL default '0',
1207 -                    PRIMARY KEY  (`hoststatus_id`),
1208 -                    UNIQUE KEY `object_id` (`host_object_id`),
1209 -                    KEY `idx1` (`current_state`)
1210 -                  ) ENGINE=InnoDB COMMENT='Current host status information';";
1211 +        $sql[] = "
1212 +                       CREATE TABLE IF NOT EXISTS `npc_hoststatus` (
1213 +                         `hoststatus_id` int(11) NOT NULL auto_increment,
1214 +                         `instance_id` smallint(6) NOT NULL default '0',
1215 +                         `host_object_id` int(11) NOT NULL default '0',
1216 +                         `status_update_time` datetime NOT NULL default '0000-00-00 00:00:00',
1217 +                         `output` varchar(255) character set latin1 NOT NULL default '',
1218 +                         `long_output` TEXT NOT NULL default '',
1219 +                         `perfdata` TEXT character set latin1 NOT NULL default '',
1220 +                         `current_state` smallint(6) NOT NULL default '0',
1221 +                         `has_been_checked` smallint(6) NOT NULL default '0',
1222 +                         `should_be_scheduled` smallint(6) NOT NULL default '0',
1223 +                         `current_check_attempt` smallint(6) NOT NULL default '0',
1224 +                         `max_check_attempts` smallint(6) NOT NULL default '0',
1225 +                         `last_check` datetime NOT NULL default '0000-00-00 00:00:00',
1226 +                         `next_check` datetime NOT NULL default '0000-00-00 00:00:00',
1227 +                         `check_type` smallint(6) NOT NULL default '0',
1228 +                         `last_state_change` datetime NOT NULL default '0000-00-00 00:00:00',
1229 +                         `last_hard_state_change` datetime NOT NULL default '0000-00-00 00:00:00',
1230 +                         `last_hard_state` smallint(6) NOT NULL default '0',
1231 +                         `last_time_up` datetime NOT NULL default '0000-00-00 00:00:00',
1232 +                         `last_time_down` datetime NOT NULL default '0000-00-00 00:00:00',
1233 +                         `last_time_unreachable` datetime NOT NULL default '0000-00-00 00:00:00',
1234 +                         `state_type` smallint(6) NOT NULL default '0',
1235 +                         `last_notification` datetime NOT NULL default '0000-00-00 00:00:00',
1236 +                         `next_notification` datetime NOT NULL default '0000-00-00 00:00:00',
1237 +                         `no_more_notifications` smallint(6) NOT NULL default '0',
1238 +                         `notifications_enabled` smallint(6) NOT NULL default '0',
1239 +                         `problem_has_been_acknowledged` smallint(6) NOT NULL default '0',
1240 +                         `acknowledgement_type` smallint(6) NOT NULL default '0',
1241 +                         `current_notification_number` smallint(6) NOT NULL default '0',
1242 +                         `passive_checks_enabled` smallint(6) NOT NULL default '0',
1243 +                         `active_checks_enabled` smallint(6) NOT NULL default '0',
1244 +                         `event_handler_enabled` smallint(6) NOT NULL default '0',
1245 +                         `flap_detection_enabled` smallint(6) NOT NULL default '0',
1246 +                         `is_flapping` smallint(6) NOT NULL default '0',
1247 +                         `percent_state_change` double NOT NULL default '0',
1248 +                         `latency` double NOT NULL default '0',
1249 +                         `execution_time` double NOT NULL default '0',
1250 +                         `scheduled_downtime_depth` smallint(6) NOT NULL default '0',
1251 +                         `failure_prediction_enabled` smallint(6) NOT NULL default '0',
1252 +                         `process_performance_data` smallint(6) NOT NULL default '0',
1253 +                         `obsess_over_host` smallint(6) NOT NULL default '0',
1254 +                         `modified_host_attributes` int(11) NOT NULL default '0',
1255 +                         `event_handler` varchar(255) character set latin1 NOT NULL default '',
1256 +                         `check_command` varchar(255) character set latin1 NOT NULL default '',
1257 +                         `normal_check_interval` double NOT NULL default '0',
1258 +                         `retry_check_interval` double NOT NULL default '0',
1259 +                         `check_timeperiod_object_id` int(11) NOT NULL default '0',
1260 +                         PRIMARY KEY  (`hoststatus_id`),
1261 +                         UNIQUE KEY `object_id` (`host_object_id`),
1262 +                         KEY `instance_id` (`instance_id`),
1263 +                         KEY `status_update_time` (`status_update_time`),
1264 +                         KEY `current_state` (`current_state`),
1265 +                         KEY `check_type` (`check_type`),
1266 +                         KEY `state_type` (`state_type`),
1267 +                         KEY `last_state_change` (`last_state_change`),
1268 +                         KEY `notifications_enabled` (`notifications_enabled`),
1269 +                         KEY `problem_has_been_acknowledged` (`problem_has_been_acknowledged`),
1270 +                         KEY `active_checks_enabled` (`active_checks_enabled`),
1271 +                         KEY `passive_checks_enabled` (`passive_checks_enabled`),
1272 +                         KEY `event_handler_enabled` (`event_handler_enabled`),
1273 +                         KEY `flap_detection_enabled` (`flap_detection_enabled`),
1274 +                         KEY `is_flapping` (`is_flapping`),
1275 +                         KEY `percent_state_change` (`percent_state_change`),
1276 +                         KEY `latency` (`latency`),
1277 +                         KEY `execution_time` (`execution_time`),
1278 +                         KEY `scheduled_downtime_depth` (`scheduled_downtime_depth`)
1279 +                       ) ENGINE=MyISAM  COMMENT='Current host status information';
1280 +               ";
1281      }
1282  
1283      if (!in_array('npc_instances', $tables)) {
1284 -        $sql[] = "CREATE TABLE `npc_instances` (
1285 -                    `instance_id` smallint(6) NOT NULL auto_increment,
1286 -                    `instance_name` varchar(64) NOT NULL default '',
1287 -                    `instance_description` varchar(128) NOT NULL default '',
1288 -                    PRIMARY KEY  (`instance_id`)
1289 -                  ) ENGINE=InnoDB COMMENT='Location names of various Nagios installations';";
1290 +        $sql[] = "
1291 +                       CREATE TABLE IF NOT EXISTS `npc_instances` (
1292 +                         `instance_id` smallint(6) NOT NULL auto_increment,
1293 +                         `instance_name` varchar(64) character set latin1 NOT NULL default '',
1294 +                         `instance_description` varchar(128) character set latin1 NOT NULL default '',
1295 +                         PRIMARY KEY  (`instance_id`)
1296 +                       ) ENGINE=MyISAM  COMMENT='Location names of various Nagios installations';
1297 +               ";
1298      }
1299  
1300      if (!in_array('npc_logentries', $tables)) {
1301 -        $sql[] = "CREATE TABLE `npc_logentries` (
1302 -                    `logentry_id` int(11) NOT NULL auto_increment,
1303 -                    `instance_id` int(11) NOT NULL default '0',
1304 -                    `logentry_time` datetime NOT NULL default '0000-00-00 00:00:00',
1305 -                    `entry_time` datetime NOT NULL default '0000-00-00 00:00:00',
1306 -                    `entry_time_usec` int(11) NOT NULL default '0',
1307 -                    `logentry_type` int(11) NOT NULL default '0',
1308 -                    `logentry_data` varchar(255) NOT NULL default '',
1309 -                    `realtime_data` smallint(6) NOT NULL default '0',
1310 -                    `inferred_data_extracted` smallint(6) NOT NULL default '0',
1311 -                    PRIMARY KEY  (`logentry_id`),
1312 -                    KEY `idx1` (`entry_time`,`entry_time_usec`)
1313 -                  ) ENGINE=InnoDB COMMENT='Historical record of log entries';";
1314 +        $sql[] = "
1315 +                       CREATE TABLE IF NOT EXISTS `npc_logentries` (
1316 +                         `logentry_id` int(11) NOT NULL auto_increment,
1317 +                         `instance_id` int(11) NOT NULL default '0',
1318 +                         `logentry_time` datetime NOT NULL default '0000-00-00 00:00:00',
1319 +                         `entry_time` datetime NOT NULL default '0000-00-00 00:00:00',
1320 +                         `entry_time_usec` int(11) NOT NULL default '0',
1321 +                         `logentry_type` int(11) NOT NULL default '0',
1322 +                         `logentry_data` varchar(255) character set latin1 NOT NULL default '',
1323 +                         `realtime_data` smallint(6) NOT NULL default '0',
1324 +                         `inferred_data_extracted` smallint(6) NOT NULL default '0',
1325 +                         PRIMARY KEY  (`logentry_id`)
1326 +                       ) ENGINE=MyISAM COMMENT='Historical record of log entries';
1327 +               ";
1328 +               $sql[] = "CREATE INDEX idx1 ON npc_logentries(entry_time, entry_time_usec);";
1329      }
1330  
1331      if (!in_array('npc_notifications', $tables)) {
1332 -        $sql[] = "CREATE TABLE `npc_notifications` (
1333 -                    `notification_id` int(11) NOT NULL auto_increment,
1334 -                    `instance_id` smallint(6) NOT NULL default '0',
1335 -                    `notification_type` smallint(6) NOT NULL default '0',
1336 -                    `notification_reason` smallint(6) NOT NULL default '0',
1337 -                    `object_id` int(11) NOT NULL default '0',
1338 -                    `start_time` datetime NOT NULL default '0000-00-00 00:00:00',
1339 -                    `start_time_usec` int(11) NOT NULL default '0',
1340 -                    `end_time` datetime NOT NULL default '0000-00-00 00:00:00',
1341 -                    `end_time_usec` int(11) NOT NULL default '0',
1342 -                    `state` smallint(6) NOT NULL default '0',
1343 -                    `output` varchar(255) NOT NULL default '',
1344 -                    `escalated` smallint(6) NOT NULL default '0',
1345 -                    `contacts_notified` smallint(6) NOT NULL default '0',
1346 -                    PRIMARY KEY  (`notification_id`),
1347 -                    UNIQUE KEY `instance_id` (`instance_id`,`object_id`,`start_time`,`start_time_usec`)
1348 -                  ) ENGINE=InnoDB COMMENT='Historical record of host and service notifications';";
1349 +        $sql[] = "
1350 +                       CREATE TABLE IF NOT EXISTS `npc_notifications` (
1351 +                         `notification_id` int(11) NOT NULL auto_increment,
1352 +                         `instance_id` smallint(6) NOT NULL default '0',
1353 +                         `notification_type` smallint(6) NOT NULL default '0',
1354 +                         `notification_reason` smallint(6) NOT NULL default '0',
1355 +                         `object_id` int(11) NOT NULL default '0',
1356 +                         `start_time` datetime NOT NULL default '0000-00-00 00:00:00',
1357 +                         `start_time_usec` int(11) NOT NULL default '0',
1358 +                         `end_time` datetime NOT NULL default '0000-00-00 00:00:00',
1359 +                         `end_time_usec` int(11) NOT NULL default '0',
1360 +                         `state` smallint(6) NOT NULL default '0',
1361 +                         `output` varchar(255) character set latin1 NOT NULL default '',
1362 +                         `long_output` TEXT NOT NULL default '',
1363 +                         `escalated` smallint(6) NOT NULL default '0',
1364 +                         `contacts_notified` smallint(6) NOT NULL default '0',
1365 +                         PRIMARY KEY  (`notification_id`),
1366 +                         UNIQUE KEY `instance_id` (`instance_id`,`object_id`,`start_time`,`start_time_usec`)
1367 +                       ) ENGINE=MyISAM  COMMENT='Historical record of host and service notifications';
1368 +               ";
1369      }
1370  
1371      if (!in_array('npc_objects', $tables)) {
1372 -        $sql[] = "CREATE TABLE `npc_objects` (
1373 -                    `object_id` int(11) NOT NULL auto_increment,
1374 -                    `instance_id` smallint(6) NOT NULL default '0',
1375 -                    `objecttype_id` smallint(6) NOT NULL default '0',
1376 -                    `name1` varchar(128) NOT NULL default '',
1377 -                    `name2` varchar(128) default NULL,
1378 -                    `is_active` smallint(6) NOT NULL default '0',
1379 -                    PRIMARY KEY  (`object_id`),
1380 -                    KEY `objecttype_id` (`objecttype_id`,`name1`,`name2`),
1381 -                    KEY `name_idx` (`name1`,`name2`)
1382 -                  ) ENGINE=InnoDB COMMENT='Current and historical objects of all kinds';";
1383 +        $sql[] = "
1384 +                       CREATE TABLE IF NOT EXISTS `npc_objects` (
1385 +                         `object_id` int(11) NOT NULL auto_increment,
1386 +                         `instance_id` smallint(6) NOT NULL default '0',
1387 +                         `objecttype_id` smallint(6) NOT NULL default '0',
1388 +                         `name1` varchar(128) character set latin1 NOT NULL default '',
1389 +                         `name2` varchar(128) character set latin1 default NULL,
1390 +                         `is_active` smallint(6) NOT NULL default '0',
1391 +                         PRIMARY KEY  (`object_id`),
1392 +                         KEY `objecttype_id` (`objecttype_id`,`name1`,`name2`)
1393 +                       ) ENGINE=MyISAM  COMMENT='Current and historical objects of all kinds';
1394 +               ";
1395 +        // FIXME? $sql[] = "KEY `name_idx` (`name1`,`name2`)";
1396      }
1397  
1398      if (!in_array('npc_processevents', $tables)) {
1399 -        $sql[] = "CREATE TABLE `npc_processevents` (
1400 -                    `processevent_id` int(11) NOT NULL auto_increment,
1401 -                    `instance_id` smallint(6) NOT NULL default '0',
1402 -                    `event_type` smallint(6) NOT NULL default '0',
1403 -                    `event_time` datetime NOT NULL default '0000-00-00 00:00:00',
1404 -                    `event_time_usec` int(11) NOT NULL default '0',
1405 -                    `process_id` int(11) NOT NULL default '0',
1406 -                    `program_name` varchar(16) NOT NULL default '',
1407 -                    `program_version` varchar(20) NOT NULL default '',
1408 -                    `program_date` varchar(10) NOT NULL default '',
1409 -                    PRIMARY KEY  (`processevent_id`)
1410 -                  ) ENGINE=InnoDB COMMENT='Historical Nagios process events';";
1411 +        $sql[] = "
1412 +                       CREATE TABLE IF NOT EXISTS `npc_processevents` (
1413 +                         `processevent_id` int(11) NOT NULL auto_increment,
1414 +                         `instance_id` smallint(6) NOT NULL default '0',
1415 +                         `event_type` smallint(6) NOT NULL default '0',
1416 +                         `event_time` datetime NOT NULL default '0000-00-00 00:00:00',
1417 +                         `event_time_usec` int(11) NOT NULL default '0',
1418 +                         `process_id` int(11) NOT NULL default '0',
1419 +                         `program_name` varchar(16) character set latin1 NOT NULL default '',
1420 +                         `program_version` varchar(20) character set latin1 NOT NULL default '',
1421 +                         `program_date` varchar(10) character set latin1 NOT NULL default '',
1422 +                         PRIMARY KEY  (`processevent_id`)
1423 +                       ) ENGINE=MyISAM  COMMENT='Historical Nagios process events';
1424 +               ";
1425      }
1426  
1427      if (!in_array('npc_programstatus', $tables)) {
1428 -        $sql[] = "CREATE TABLE `npc_programstatus` (
1429 -                    `programstatus_id` int(11) NOT NULL auto_increment,
1430 -                    `instance_id` smallint(6) NOT NULL default '0',
1431 -                    `status_update_time` datetime NOT NULL default '0000-00-00 00:00:00',
1432 -                    `program_start_time` datetime NOT NULL default '0000-00-00 00:00:00',
1433 -                    `program_end_time` datetime NOT NULL default '0000-00-00 00:00:00',
1434 -                    `is_currently_running` smallint(6) NOT NULL default '0',
1435 -                    `process_id` int(11) NOT NULL default '0',
1436 -                    `daemon_mode` smallint(6) NOT NULL default '0',
1437 -                    `last_command_check` datetime NOT NULL default '0000-00-00 00:00:00',
1438 -                    `last_log_rotation` datetime NOT NULL default '0000-00-00 00:00:00',
1439 -                    `notifications_enabled` smallint(6) NOT NULL default '0',
1440 -                    `active_service_checks_enabled` smallint(6) NOT NULL default '0',
1441 -                    `passive_service_checks_enabled` smallint(6) NOT NULL default '0',
1442 -                    `active_host_checks_enabled` smallint(6) NOT NULL default '0',
1443 -                    `passive_host_checks_enabled` smallint(6) NOT NULL default '0',
1444 -                    `event_handlers_enabled` smallint(6) NOT NULL default '0',
1445 -                    `flap_detection_enabled` smallint(6) NOT NULL default '0',
1446 -                    `failure_prediction_enabled` smallint(6) NOT NULL default '0',
1447 -                    `process_performance_data` smallint(6) NOT NULL default '0',
1448 -                    `obsess_over_hosts` smallint(6) NOT NULL default '0',
1449 -                    `obsess_over_services` smallint(6) NOT NULL default '0',
1450 -                    `modified_host_attributes` int(11) NOT NULL default '0',
1451 -                    `modified_service_attributes` int(11) NOT NULL default '0',
1452 -                    `global_host_event_handler` varchar(255) NOT NULL default '',
1453 -                    `global_service_event_handler` varchar(255) NOT NULL default '',
1454 -                    PRIMARY KEY  (`programstatus_id`),
1455 -                    UNIQUE KEY `instance_id` (`instance_id`)
1456 -                  ) ENGINE=InnoDB COMMENT='Current program status information';";
1457 +        $sql[] = "
1458 +                       CREATE TABLE IF NOT EXISTS `npc_programstatus` (
1459 +                         `programstatus_id` int(11) NOT NULL auto_increment,
1460 +                         `instance_id` smallint(6) NOT NULL default '0',
1461 +                         `status_update_time` datetime NOT NULL default '0000-00-00 00:00:00',
1462 +                         `program_start_time` datetime NOT NULL default '0000-00-00 00:00:00',
1463 +                         `program_end_time` datetime NOT NULL default '0000-00-00 00:00:00',
1464 +                         `is_currently_running` smallint(6) NOT NULL default '0',
1465 +                         `process_id` int(11) NOT NULL default '0',
1466 +                         `daemon_mode` smallint(6) NOT NULL default '0',
1467 +                         `last_command_check` datetime NOT NULL default '0000-00-00 00:00:00',
1468 +                         `last_log_rotation` datetime NOT NULL default '0000-00-00 00:00:00',
1469 +                         `notifications_enabled` smallint(6) NOT NULL default '0',
1470 +                         `active_service_checks_enabled` smallint(6) NOT NULL default '0',
1471 +                         `passive_service_checks_enabled` smallint(6) NOT NULL default '0',
1472 +                         `active_host_checks_enabled` smallint(6) NOT NULL default '0',
1473 +                         `passive_host_checks_enabled` smallint(6) NOT NULL default '0',
1474 +                         `event_handlers_enabled` smallint(6) NOT NULL default '0',
1475 +                         `flap_detection_enabled` smallint(6) NOT NULL default '0',
1476 +                         `failure_prediction_enabled` smallint(6) NOT NULL default '0',
1477 +                         `process_performance_data` smallint(6) NOT NULL default '0',
1478 +                         `obsess_over_hosts` smallint(6) NOT NULL default '0',
1479 +                         `obsess_over_services` smallint(6) NOT NULL default '0',
1480 +                         `modified_host_attributes` int(11) NOT NULL default '0',
1481 +                         `modified_service_attributes` int(11) NOT NULL default '0',
1482 +                         `global_host_event_handler` varchar(255) character set latin1 NOT NULL default '',
1483 +                         `global_service_event_handler` varchar(255) character set latin1 NOT NULL default '',
1484 +                         PRIMARY KEY  (`programstatus_id`),
1485 +                         UNIQUE KEY `instance_id` (`instance_id`)
1486 +                       ) ENGINE=MyISAM  COMMENT='Current program status information';
1487 +               ";
1488      }
1489  
1490      if (!in_array('npc_runtimevariables', $tables)) {
1491 -        $sql[] = "CREATE TABLE `npc_runtimevariables` (
1492 -                    `runtimevariable_id` int(11) NOT NULL auto_increment,
1493 -                    `instance_id` smallint(6) NOT NULL default '0',
1494 -                    `varname` varchar(64) NOT NULL default '',
1495 -                    `varvalue` varchar(255) NOT NULL default '',
1496 -                    PRIMARY KEY  (`runtimevariable_id`),
1497 -                    UNIQUE KEY `instance_id` (`instance_id`,`varname`)
1498 -                  ) ENGINE=InnoDB COMMENT='Runtime variables from the Nagios daemon';";
1499 +        $sql[] = "
1500 +                       CREATE TABLE IF NOT EXISTS `npc_runtimevariables` (
1501 +                         `runtimevariable_id` int(11) NOT NULL auto_increment,
1502 +                         `instance_id` smallint(6) NOT NULL default '0',
1503 +                         `varname` varchar(64) character set latin1 NOT NULL default '',
1504 +                         `varvalue` varchar(255) character set latin1 NOT NULL default '',
1505 +                         PRIMARY KEY  (`runtimevariable_id`),
1506 +                         UNIQUE KEY `instance_id` (`instance_id`,`varname`)
1507 +                       ) ENGINE=MyISAM  COMMENT='Runtime variables from the Nagios daemon';
1508 +               ";
1509      }
1510  
1511      if (!in_array('npc_scheduleddowntime', $tables)) {
1512 -        $sql[] = "CREATE TABLE `npc_scheduleddowntime` (
1513 -                    `scheduleddowntime_id` int(11) NOT NULL auto_increment,
1514 -                    `instance_id` smallint(6) NOT NULL default '0',
1515 -                    `downtime_type` smallint(6) NOT NULL default '0',
1516 -                    `object_id` int(11) NOT NULL default '0',
1517 -                    `entry_time` datetime NOT NULL default '0000-00-00 00:00:00',
1518 -                    `author_name` varchar(64) NOT NULL default '',
1519 -                    `comment_data` varchar(255) NOT NULL default '',
1520 -                    `internal_downtime_id` int(11) NOT NULL default '0',
1521 -                    `triggered_by_id` int(11) NOT NULL default '0',
1522 -                    `is_fixed` smallint(6) NOT NULL default '0',
1523 -                    `duration` smallint(6) NOT NULL default '0',
1524 -                    `scheduled_start_time` datetime NOT NULL default '0000-00-00 00:00:00',
1525 -                    `scheduled_end_time` datetime NOT NULL default '0000-00-00 00:00:00',
1526 -                    `was_started` smallint(6) NOT NULL default '0',
1527 -                    `actual_start_time` datetime NOT NULL default '0000-00-00 00:00:00',
1528 -                    `actual_start_time_usec` int(11) NOT NULL default '0',
1529 -                    PRIMARY KEY  (`scheduleddowntime_id`),
1530 -                    UNIQUE KEY `instance_id` (`instance_id`,`object_id`,`entry_time`,`internal_downtime_id`)
1531 -                  ) ENGINE=InnoDB COMMENT='Current scheduled host and service downtime';";
1532 +        $sql[] = "
1533 +                       CREATE TABLE IF NOT EXISTS `npc_scheduleddowntime` (
1534 +                         `scheduleddowntime_id` int(11) NOT NULL auto_increment,
1535 +                         `instance_id` smallint(6) NOT NULL default '0',
1536 +                         `downtime_type` smallint(6) NOT NULL default '0',
1537 +                         `object_id` int(11) NOT NULL default '0',
1538 +                         `entry_time` datetime NOT NULL default '0000-00-00 00:00:00',
1539 +                         `author_name` varchar(64) character set latin1 NOT NULL default '',
1540 +                         `comment_data` varchar(255) character set latin1 NOT NULL default '',
1541 +                         `internal_downtime_id` int(11) NOT NULL default '0',
1542 +                         `triggered_by_id` int(11) NOT NULL default '0',
1543 +                         `is_fixed` smallint(6) NOT NULL default '0',
1544 +                         `duration` smallint(6) NOT NULL default '0',
1545 +                         `scheduled_start_time` datetime NOT NULL default '0000-00-00 00:00:00',
1546 +                         `scheduled_end_time` datetime NOT NULL default '0000-00-00 00:00:00',
1547 +                         `was_started` smallint(6) NOT NULL default '0',
1548 +                         `actual_start_time` datetime NOT NULL default '0000-00-00 00:00:00',
1549 +                         `actual_start_time_usec` int(11) NOT NULL default '0',
1550 +                         PRIMARY KEY  (`scheduleddowntime_id`),
1551 +                         UNIQUE KEY `instance_id` (`instance_id`,`object_id`,`entry_time`,`internal_downtime_id`)
1552 +                       ) ENGINE=MyISAM COMMENT='Current scheduled host and service downtime';
1553 +               ";
1554      }
1555  
1556      if (!in_array('npc_service_contactgroups', $tables)) {
1557 -        $sql[] = "CREATE TABLE `npc_service_contactgroups` (
1558 -                    `service_contactgroup_id` int(11) NOT NULL auto_increment,
1559 -                    `instance_id` smallint(6) NOT NULL default '0',
1560 -                    `service_id` int(11) NOT NULL default '0',
1561 -                    `contactgroup_object_id` int(11) NOT NULL default '0',
1562 -                    PRIMARY KEY  (`service_contactgroup_id`),
1563 -                    UNIQUE KEY `instance_id` (`service_id`,`contactgroup_object_id`)
1564 -                  ) ENGINE=InnoDB COMMENT='Service contact groups';";
1565 +        $sql[] = "
1566 +                       CREATE TABLE IF NOT EXISTS `npc_service_contactgroups` (
1567 +                         `service_contactgroup_id` int(11) NOT NULL auto_increment,
1568 +                         `instance_id` smallint(6) NOT NULL default '0',
1569 +                         `service_id` int(11) NOT NULL default '0',
1570 +                         `contactgroup_object_id` int(11) NOT NULL default '0',
1571 +                         PRIMARY KEY  (`service_contactgroup_id`),
1572 +                         UNIQUE KEY `instance_id` (`service_id`,`contactgroup_object_id`)
1573 +                       ) ENGINE=MyISAM  COMMENT='Service contact groups';
1574 +               ";
1575      }
1576  
1577      if (!in_array('npc_service_contacts', $tables)) {
1578 -        $sql[] = "CREATE TABLE `npc_service_contacts` (
1579 -                    `service_contact_id` int(11) NOT NULL auto_increment,
1580 -                    `instance_id` smallint(6) NOT NULL default '0',
1581 -                    `service_id` int(11) NOT NULL default '0',
1582 -                    `contact_object_id` int(11) NOT NULL default '0',
1583 -                    PRIMARY KEY  (`service_contact_id`),
1584 -                    UNIQUE KEY `instance_id` (`instance_id`,`service_id`,`contact_object_id`)
1585 -                  ) ENGINE=InnoDB;";
1586 +        $sql[] = "
1587 +                       CREATE TABLE IF NOT EXISTS `npc_service_contacts` (
1588 +                         `service_contact_id` int(11) NOT NULL auto_increment,
1589 +                         `instance_id` smallint(6) NOT NULL default '0',
1590 +                         `service_id` int(11) NOT NULL default '0',
1591 +                         `contact_object_id` int(11) NOT NULL default '0',
1592 +                         PRIMARY KEY  (`service_contact_id`),
1593 +                         UNIQUE KEY `instance_id` (`instance_id`,`service_id`,`contact_object_id`)
1594 +                       ) ENGINE=MyISAM ;
1595 +               ";
1596      }
1597  
1598      if (!in_array('npc_servicechecks', $tables)) {
1599 -        $sql[] = "CREATE TABLE `npc_servicechecks` (
1600 -                    `servicecheck_id` int(11) NOT NULL auto_increment,
1601 -                    `instance_id` smallint(6) NOT NULL default '0',
1602 -                    `service_object_id` int(11) NOT NULL default '0',
1603 -                    `check_type` smallint(6) NOT NULL default '0',
1604 -                    `current_check_attempt` smallint(6) NOT NULL default '0',
1605 -                    `max_check_attempts` smallint(6) NOT NULL default '0',
1606 -                    `state` smallint(6) NOT NULL default '0',
1607 -                    `state_type` smallint(6) NOT NULL default '0',
1608 -                    `start_time` datetime NOT NULL default '0000-00-00 00:00:00',
1609 -                    `start_time_usec` int(11) NOT NULL default '0',
1610 -                    `end_time` datetime NOT NULL default '0000-00-00 00:00:00',
1611 -                    `end_time_usec` int(11) NOT NULL default '0',
1612 -                    `command_object_id` int(11) NOT NULL default '0',
1613 -                    `command_args` varchar(255) NOT NULL default '',
1614 -                    `command_line` varchar(255) NOT NULL default '',
1615 -                    `timeout` smallint(6) NOT NULL default '0',
1616 -                    `early_timeout` smallint(6) NOT NULL default '0',
1617 -                    `execution_time` double NOT NULL default '0',
1618 -                    `latency` double NOT NULL default '0',
1619 -                    `return_code` smallint(6) NOT NULL default '0',
1620 -                    `output` varchar(255) NOT NULL default '',
1621 -                    `perfdata` varchar(255) NOT NULL default '',
1622 -                    PRIMARY KEY  (`servicecheck_id`),
1623 -                    UNIQUE KEY `instance_id` (`instance_id`,`service_object_id`,`start_time`,`start_time_usec`),
1624 -                    KEY `idx1` (`service_object_id`,`start_time`),
1625 -                    KEY `idx2` (`instance_id`,`start_time`)
1626 -                  ) ENGINE=InnoDB COMMENT='Historical service checks';";
1627 +        $sql[] = "
1628 +                       CREATE TABLE IF NOT EXISTS `npc_servicechecks` (
1629 +                         `servicecheck_id` int(11) NOT NULL auto_increment,
1630 +                         `instance_id` smallint(6) NOT NULL default '0',
1631 +                         `service_object_id` int(11) NOT NULL default '0',
1632 +                         `check_type` smallint(6) NOT NULL default '0',
1633 +                         `current_check_attempt` smallint(6) NOT NULL default '0',
1634 +                         `max_check_attempts` smallint(6) NOT NULL default '0',
1635 +                         `state` smallint(6) NOT NULL default '0',
1636 +                         `state_type` smallint(6) NOT NULL default '0',
1637 +                         `start_time` datetime NOT NULL default '0000-00-00 00:00:00',
1638 +                         `start_time_usec` int(11) NOT NULL default '0',
1639 +                         `end_time` datetime NOT NULL default '0000-00-00 00:00:00',
1640 +                         `end_time_usec` int(11) NOT NULL default '0',
1641 +                         `command_object_id` int(11) NOT NULL default '0',
1642 +                         `command_args` varchar(255) character set latin1 NOT NULL default '',
1643 +                         `command_line` varchar(255) character set latin1 NOT NULL default '',
1644 +                         `timeout` smallint(6) NOT NULL default '0',
1645 +                         `early_timeout` smallint(6) NOT NULL default '0',
1646 +                         `execution_time` double NOT NULL default '0',
1647 +                         `latency` double NOT NULL default '0',
1648 +                         `return_code` smallint(6) NOT NULL default '0',
1649 +                         `output` varchar(255) character set latin1 NOT NULL default '',
1650 +                         `long_output` TEXT NOT NULL default '',
1651 +                         `perfdata` TEXT character set latin1 NOT NULL default '',
1652 +                         PRIMARY KEY  (`servicecheck_id`),
1653 +                         KEY `instance_id` (`instance_id`),
1654 +                         KEY `service_object_id` (`service_object_id`),
1655 +                         KEY `start_time` (`start_time`)
1656 +                       ) ENGINE=MyISAM  COMMENT='Historical service checks';
1657 +               ";
1658 +        $sql[] = "CREATE INDEX idx1 ON npc_servicechecks(service_object_id, start_time);";
1659 +        $sql[] = "CREATE INDEX idx2 ON npc_servicechecks(instance_id, start_time);";
1660 +        // FIXME? $sql[] = "UNIQUE KEY `instance_id` (`instance_id`,`service_object_id`,`start_time`,`start_time_usec`)";
1661      }
1662  
1663      if (!in_array('npc_servicedependencies', $tables)) {
1664 -        $sql[] = "CREATE TABLE `npc_servicedependencies` (
1665 -                    `servicedependency_id` int(11) NOT NULL auto_increment,
1666 -                    `instance_id` smallint(6) NOT NULL default '0',
1667 -                    `config_type` smallint(6) NOT NULL default '0',
1668 -                    `service_object_id` int(11) NOT NULL default '0',
1669 -                    `dependent_service_object_id` int(11) NOT NULL default '0',
1670 -                    `dependency_type` smallint(6) NOT NULL default '0',
1671 -                    `inherits_parent` smallint(6) NOT NULL default '0',
1672 -                    `timeperiod_object_id` int(11) NOT NULL default '0',
1673 -                    `fail_on_ok` smallint(6) NOT NULL default '0',
1674 -                    `fail_on_warning` smallint(6) NOT NULL default '0',
1675 -                    `fail_on_unknown` smallint(6) NOT NULL default '0',
1676 -                    `fail_on_critical` smallint(6) NOT NULL default '0',
1677 -                    PRIMARY KEY  (`servicedependency_id`),
1678 -                    UNIQUE KEY `instance_id` (`instance_id`,`config_type`,`service_object_id`,`dependent_service_object_id`,`dependency_type`,`inherits_parent`,`fail_on_ok`,`fail_on_warning`,`fail_on_unknown`,`fail_on_critical`)
1679 -                  ) ENGINE=InnoDB COMMENT='Service dependency definitions';";
1680 +        $sql[] = "
1681 +                       CREATE TABLE IF NOT EXISTS `npc_servicedependencies` (
1682 +                         `servicedependency_id` int(11) NOT NULL auto_increment,
1683 +                         `instance_id` smallint(6) NOT NULL default '0',
1684 +                         `config_type` smallint(6) NOT NULL default '0',
1685 +                         `service_object_id` int(11) NOT NULL default '0',
1686 +                         `dependent_service_object_id` int(11) NOT NULL default '0',
1687 +                         `dependency_type` smallint(6) NOT NULL default '0',
1688 +                         `inherits_parent` smallint(6) NOT NULL default '0',
1689 +                         `timeperiod_object_id` int(11) NOT NULL default '0',
1690 +                         `fail_on_ok` smallint(6) NOT NULL default '0',
1691 +                         `fail_on_warning` smallint(6) NOT NULL default '0',
1692 +                         `fail_on_unknown` smallint(6) NOT NULL default '0',
1693 +                         `fail_on_critical` smallint(6) NOT NULL default '0',
1694 +                         PRIMARY KEY  (`servicedependency_id`),
1695 +                         UNIQUE KEY `instance_id` (`instance_id`,`config_type`,`service_object_id`,`dependent_service_object_id`,`dependency_type`,`inherits_parent`,`fail_on_ok`,`fail_on_warning`,`fail_on_unknown`,`fail_on_critical`)
1696 +                       ) ENGINE=MyISAM COMMENT='Service dependency definitions';
1697 +               ";
1698      }
1699  
1700      if (!in_array('npc_serviceescalation_contactgroups', $tables)) {
1701 -        $sql[] = "CREATE TABLE `npc_serviceescalation_contactgroups` (
1702 -                    `serviceescalation_contactgroup_id` int(11) NOT NULL auto_increment,
1703 -                    `instance_id` smallint(6) NOT NULL default '0',
1704 -                    `serviceescalation_id` int(11) NOT NULL default '0',
1705 -                    `contactgroup_object_id` int(11) NOT NULL default '0',
1706 -                    PRIMARY KEY  (`serviceescalation_contactgroup_id`),
1707 -                    UNIQUE KEY `instance_id` (`serviceescalation_id`,`contactgroup_object_id`)
1708 -                  ) ENGINE=InnoDB COMMENT='Service escalation contact groups';";
1709 +        $sql[] = "
1710 +                       CREATE TABLE IF NOT EXISTS `npc_serviceescalation_contactgroups` (
1711 +                         `serviceescalation_contactgroup_id` int(11) NOT NULL auto_increment,
1712 +                         `instance_id` smallint(6) NOT NULL default '0',
1713 +                         `serviceescalation_id` int(11) NOT NULL default '0',
1714 +                         `contactgroup_object_id` int(11) NOT NULL default '0',
1715 +                         PRIMARY KEY  (`serviceescalation_contactgroup_id`),
1716 +                         UNIQUE KEY `instance_id` (`serviceescalation_id`,`contactgroup_object_id`)
1717 +                       ) ENGINE=MyISAM  COMMENT='Service escalation contact groups';
1718 +               ";
1719      }
1720  
1721      if (!in_array('npc_serviceescalation_contacts', $tables)) {
1722 -        $sql[] = "CREATE TABLE `npc_serviceescalation_contacts` (
1723 -                    `serviceescalation_contact_id` int(11) NOT NULL auto_increment,
1724 -                    `instance_id` smallint(6) NOT NULL default '0',
1725 -                    `serviceescalation_id` int(11) NOT NULL default '0',
1726 -                    `contact_object_id` int(11) NOT NULL default '0',
1727 -                    PRIMARY KEY  (`serviceescalation_contact_id`),
1728 -                    UNIQUE KEY `instance_id` (`instance_id`,`serviceescalation_id`,`contact_object_id`)
1729 -                  ) ENGINE=InnoDB;";
1730 +        $sql[] = "
1731 +                       CREATE TABLE IF NOT EXISTS `npc_serviceescalation_contacts` (
1732 +                         `serviceescalation_contact_id` int(11) NOT NULL auto_increment,
1733 +                         `instance_id` smallint(6) NOT NULL default '0',
1734 +                         `serviceescalation_id` int(11) NOT NULL default '0',
1735 +                         `contact_object_id` int(11) NOT NULL default '0',
1736 +                         PRIMARY KEY  (`serviceescalation_contact_id`),
1737 +                         UNIQUE KEY `instance_id` (`instance_id`,`serviceescalation_id`,`contact_object_id`)
1738 +                       ) ENGINE=MyISAM ;
1739 +               ";
1740      }
1741  
1742      if (!in_array('npc_serviceescalations', $tables)) {
1743 -        $sql[] = "CREATE TABLE `npc_serviceescalations` (
1744 -                    `serviceescalation_id` int(11) NOT NULL auto_increment,
1745 -                    `instance_id` smallint(6) NOT NULL default '0',
1746 -                    `config_type` smallint(6) NOT NULL default '0',
1747 -                    `service_object_id` int(11) NOT NULL default '0',
1748 -                    `timeperiod_object_id` int(11) NOT NULL default '0',
1749 -                    `first_notification` smallint(6) NOT NULL default '0',
1750 -                    `last_notification` smallint(6) NOT NULL default '0',
1751 -                    `notification_interval` double NOT NULL default '0',
1752 -                    `escalate_on_recovery` smallint(6) NOT NULL default '0',
1753 -                    `escalate_on_warning` smallint(6) NOT NULL default '0',
1754 -                    `escalate_on_unknown` smallint(6) NOT NULL default '0',
1755 -                    `escalate_on_critical` smallint(6) NOT NULL default '0',
1756 -                    PRIMARY KEY  (`serviceescalation_id`),
1757 -                    UNIQUE KEY `instance_id` (`instance_id`,`config_type`,`service_object_id`,`timeperiod_object_id`,`first_notification`,`last_notification`)
1758 -                  ) ENGINE=InnoDB COMMENT='Service escalation definitions';";
1759 +        $sql[] = "
1760 +                       CREATE TABLE IF NOT EXISTS `npc_serviceescalations` (
1761 +                         `serviceescalation_id` int(11) NOT NULL auto_increment,
1762 +                         `instance_id` smallint(6) NOT NULL default '0',
1763 +                         `config_type` smallint(6) NOT NULL default '0',
1764 +                         `service_object_id` int(11) NOT NULL default '0',
1765 +                         `timeperiod_object_id` int(11) NOT NULL default '0',
1766 +                         `first_notification` smallint(6) NOT NULL default '0',
1767 +                         `last_notification` smallint(6) NOT NULL default '0',
1768 +                         `notification_interval` double NOT NULL default '0',
1769 +                         `escalate_on_recovery` smallint(6) NOT NULL default '0',
1770 +                         `escalate_on_warning` smallint(6) NOT NULL default '0',
1771 +                         `escalate_on_unknown` smallint(6) NOT NULL default '0',
1772 +                         `escalate_on_critical` smallint(6) NOT NULL default '0',
1773 +                         PRIMARY KEY  (`serviceescalation_id`),
1774 +                         UNIQUE KEY `instance_id` (`instance_id`,`config_type`,`service_object_id`,`timeperiod_object_id`,`first_notification`,`last_notification`)
1775 +                       ) ENGINE=MyISAM  COMMENT='Service escalation definitions';
1776 +               ";
1777      }
1778  
1779      if (!in_array('npc_servicegroup_members', $tables)) {
1780 -        $sql[] = "CREATE TABLE `npc_servicegroup_members` (
1781 -                    `servicegroup_member_id` int(11) NOT NULL auto_increment,
1782 -                    `instance_id` smallint(6) NOT NULL default '0',
1783 -                    `servicegroup_id` int(11) NOT NULL default '0',
1784 -                    `service_object_id` int(11) NOT NULL default '0',
1785 -                    PRIMARY KEY  (`servicegroup_member_id`),
1786 -                    UNIQUE KEY `instance_id` (`servicegroup_id`,`service_object_id`)
1787 -                  ) ENGINE=InnoDB COMMENT='Servicegroup members';";
1788 +        $sql[] = "
1789 +                       CREATE TABLE IF NOT EXISTS `npc_servicegroup_members` (
1790 +                         `servicegroup_member_id` int(11) NOT NULL auto_increment,
1791 +                         `instance_id` smallint(6) NOT NULL default '0',
1792 +                         `servicegroup_id` int(11) NOT NULL default '0',
1793 +                         `service_object_id` int(11) NOT NULL default '0',
1794 +                         PRIMARY KEY  (`servicegroup_member_id`),
1795 +                         UNIQUE KEY `instance_id` (`servicegroup_id`,`service_object_id`)
1796 +                       ) ENGINE=MyISAM  COMMENT='Servicegroup members';
1797 +               ";
1798      }
1799  
1800      if (!in_array('npc_servicegroups', $tables)) {
1801 -        $sql[] = "CREATE TABLE `npc_servicegroups` (
1802 -                    `servicegroup_id` int(11) NOT NULL auto_increment,
1803 -                    `instance_id` smallint(6) NOT NULL default '0',
1804 -                    `config_type` smallint(6) NOT NULL default '0',
1805 -                    `servicegroup_object_id` int(11) NOT NULL default '0',
1806 -                    `alias` varchar(255) NOT NULL default '',
1807 -                    PRIMARY KEY  (`servicegroup_id`),
1808 -                    UNIQUE KEY `instance_id` (`instance_id`,`config_type`,`servicegroup_object_id`)
1809 -                  ) ENGINE=InnoDB COMMENT='Servicegroup definitions';";
1810 +        $sql[] = "
1811 +                       CREATE TABLE IF NOT EXISTS `npc_servicegroups` (
1812 +                         `servicegroup_id` int(11) NOT NULL auto_increment,
1813 +                         `instance_id` smallint(6) NOT NULL default '0',
1814 +                         `config_type` smallint(6) NOT NULL default '0',
1815 +                         `servicegroup_object_id` int(11) NOT NULL default '0',
1816 +                         `alias` varchar(255) character set latin1 NOT NULL default '',
1817 +                         PRIMARY KEY  (`servicegroup_id`),
1818 +                         UNIQUE KEY `instance_id` (`instance_id`,`config_type`,`servicegroup_object_id`)
1819 +                       ) ENGINE=MyISAM  COMMENT='Servicegroup definitions';
1820 +               ";
1821      }
1822  
1823      if (!in_array('npc_services', $tables)) {
1824 -        $sql[] = "CREATE TABLE `npc_services` (
1825 -                    `service_id` int(11) NOT NULL auto_increment,
1826 -                    `instance_id` smallint(6) NOT NULL default '0',
1827 -                    `config_type` smallint(6) NOT NULL default '0',
1828 -                    `host_object_id` int(11) NOT NULL default '0',
1829 -                    `service_object_id` int(11) NOT NULL default '0',
1830 -                    `display_name` varchar(64) NOT NULL default '',
1831 -                    `check_command_object_id` int(11) NOT NULL default '0',
1832 -                    `check_command_args` varchar(255) NOT NULL default '',
1833 -                    `eventhandler_command_object_id` int(11) NOT NULL default '0',
1834 -                    `eventhandler_command_args` varchar(255) NOT NULL default '',
1835 -                    `notification_timeperiod_object_id` int(11) NOT NULL default '0',
1836 -                    `check_timeperiod_object_id` int(11) NOT NULL default '0',
1837 -                    `failure_prediction_options` varchar(64) NOT NULL default '',
1838 -                    `check_interval` double NOT NULL default '0',
1839 -                    `retry_interval` double NOT NULL default '0',
1840 -                    `max_check_attempts` smallint(6) NOT NULL default '0',
1841 -                    `first_notification_delay` double NOT NULL default '0',
1842 -                    `notification_interval` double NOT NULL default '0',
1843 -                    `notify_on_warning` smallint(6) NOT NULL default '0',
1844 -                    `notify_on_unknown` smallint(6) NOT NULL default '0',
1845 -                    `notify_on_critical` smallint(6) NOT NULL default '0',
1846 -                    `notify_on_recovery` smallint(6) NOT NULL default '0',
1847 -                    `notify_on_flapping` smallint(6) NOT NULL default '0',
1848 -                    `notify_on_downtime` smallint(6) NOT NULL default '0',
1849 -                    `stalk_on_ok` smallint(6) NOT NULL default '0',
1850 -                    `stalk_on_warning` smallint(6) NOT NULL default '0',
1851 -                    `stalk_on_unknown` smallint(6) NOT NULL default '0',
1852 -                    `stalk_on_critical` smallint(6) NOT NULL default '0',
1853 -                    `is_volatile` smallint(6) NOT NULL default '0',
1854 -                    `flap_detection_enabled` smallint(6) NOT NULL default '0',
1855 -                    `flap_detection_on_ok` smallint(6) NOT NULL default '0',
1856 -                    `flap_detection_on_warning` smallint(6) NOT NULL default '0',
1857 -                    `flap_detection_on_unknown` smallint(6) NOT NULL default '0',
1858 -                    `flap_detection_on_critical` smallint(6) NOT NULL default '0',
1859 -                    `low_flap_threshold` double NOT NULL default '0',
1860 -                    `high_flap_threshold` double NOT NULL default '0',
1861 -                    `process_performance_data` smallint(6) NOT NULL default '0',
1862 -                    `freshness_checks_enabled` smallint(6) NOT NULL default '0',
1863 -                    `freshness_threshold` smallint(6) NOT NULL default '0',
1864 -                    `passive_checks_enabled` smallint(6) NOT NULL default '0',
1865 -                    `event_handler_enabled` smallint(6) NOT NULL default '0',
1866 -                    `active_checks_enabled` smallint(6) NOT NULL default '0',
1867 -                    `retain_status_information` smallint(6) NOT NULL default '0',
1868 -                    `retain_nonstatus_information` smallint(6) NOT NULL default '0',
1869 -                    `notifications_enabled` smallint(6) NOT NULL default '0',
1870 -                    `obsess_over_service` smallint(6) NOT NULL default '0',
1871 -                    `failure_prediction_enabled` smallint(6) NOT NULL default '0',
1872 -                    `notes` varchar(255) NOT NULL default '',
1873 -                    `notes_url` varchar(255) NOT NULL default '',
1874 -                    `action_url` varchar(255) NOT NULL default '',
1875 -                    `icon_image` varchar(255) NOT NULL default '',
1876 -                    `icon_image_alt` varchar(255) NOT NULL default '',
1877 -                    PRIMARY KEY  (`service_id`),
1878 -                    UNIQUE KEY `instance_id` (`instance_id`,`config_type`,`service_object_id`),
1879 -                    KEY `idx1` (`config_type`),
1880 -                    KEY `idx2` (`host_object_id`),
1881 -                    KEY `idx3` (`service_object_id`)
1882 -                  ) ENGINE=InnoDB COMMENT='Service definitions';";
1883 +        $sql[] = "
1884 +                       CREATE TABLE IF NOT EXISTS `npc_services` (
1885 +                         `service_id` int(11) NOT NULL auto_increment,
1886 +                         `instance_id` smallint(6) NOT NULL default '0',
1887 +                         `config_type` smallint(6) NOT NULL default '0',
1888 +                         `host_object_id` int(11) NOT NULL default '0',
1889 +                         `service_object_id` int(11) NOT NULL default '0',
1890 +                         `display_name` varchar(64) character set latin1 NOT NULL default '',
1891 +                         `check_command_object_id` int(11) NOT NULL default '0',
1892 +                         `check_command_args` varchar(255) character set latin1 NOT NULL default '',
1893 +                         `eventhandler_command_object_id` int(11) NOT NULL default '0',
1894 +                         `eventhandler_command_args` varchar(255) character set latin1 NOT NULL default '',
1895 +                         `notification_timeperiod_object_id` int(11) NOT NULL default '0',
1896 +                         `check_timeperiod_object_id` int(11) NOT NULL default '0',
1897 +                         `failure_prediction_options` varchar(64) character set latin1 NOT NULL default '',
1898 +                         `check_interval` double NOT NULL default '0',
1899 +                         `retry_interval` double NOT NULL default '0',
1900 +                         `max_check_attempts` smallint(6) NOT NULL default '0',
1901 +                         `first_notification_delay` double NOT NULL default '0',
1902 +                         `notification_interval` double NOT NULL default '0',
1903 +                         `notify_on_warning` smallint(6) NOT NULL default '0',
1904 +                         `notify_on_unknown` smallint(6) NOT NULL default '0',
1905 +                         `notify_on_critical` smallint(6) NOT NULL default '0',
1906 +                         `notify_on_recovery` smallint(6) NOT NULL default '0',
1907 +                         `notify_on_flapping` smallint(6) NOT NULL default '0',
1908 +                         `notify_on_downtime` smallint(6) NOT NULL default '0',
1909 +                         `stalk_on_ok` smallint(6) NOT NULL default '0',
1910 +                         `stalk_on_warning` smallint(6) NOT NULL default '0',
1911 +                         `stalk_on_unknown` smallint(6) NOT NULL default '0',
1912 +                         `stalk_on_critical` smallint(6) NOT NULL default '0',
1913 +                         `is_volatile` smallint(6) NOT NULL default '0',
1914 +                         `flap_detection_enabled` smallint(6) NOT NULL default '0',
1915 +                         `flap_detection_on_ok` smallint(6) NOT NULL default '0',
1916 +                         `flap_detection_on_warning` smallint(6) NOT NULL default '0',
1917 +                         `flap_detection_on_unknown` smallint(6) NOT NULL default '0',
1918 +                         `flap_detection_on_critical` smallint(6) NOT NULL default '0',
1919 +                         `low_flap_threshold` double NOT NULL default '0',
1920 +                         `high_flap_threshold` double NOT NULL default '0',
1921 +                         `process_performance_data` smallint(6) NOT NULL default '0',
1922 +                         `freshness_checks_enabled` smallint(6) NOT NULL default '0',
1923 +                         `freshness_threshold` smallint(6) NOT NULL default '0',
1924 +                         `passive_checks_enabled` smallint(6) NOT NULL default '0',
1925 +                         `event_handler_enabled` smallint(6) NOT NULL default '0',
1926 +                         `active_checks_enabled` smallint(6) NOT NULL default '0',
1927 +                         `retain_status_information` smallint(6) NOT NULL default '0',
1928 +                         `retain_nonstatus_information` smallint(6) NOT NULL default '0',
1929 +                         `notifications_enabled` smallint(6) NOT NULL default '0',
1930 +                         `obsess_over_service` smallint(6) NOT NULL default '0',
1931 +                         `failure_prediction_enabled` smallint(6) NOT NULL default '0',
1932 +                         `notes` varchar(255) character set latin1 NOT NULL default '',
1933 +                         `notes_url` varchar(255) character set latin1 NOT NULL default '',
1934 +                         `action_url` varchar(255) character set latin1 NOT NULL default '',
1935 +                         `icon_image` varchar(255) character set latin1 NOT NULL default '',
1936 +                         `icon_image_alt` varchar(255) character set latin1 NOT NULL default '',
1937 +                         PRIMARY KEY  (`service_id`),
1938 +                         UNIQUE KEY `instance_id` (`instance_id`,`config_type`,`service_object_id`),
1939 +                         KEY `service_object_id` (`service_object_id`)
1940 +                       ) ENGINE=MyISAM  COMMENT='Service definitions';
1941 +               ";
1942 +
1943 +        $sql[] = "CREATE INDEX idx1 ON npc_services(config_type);";
1944 +        $sql[] = "CREATE INDEX idx2 ON npc_services(host_object_id);";
1945 +        $sql[] = "CREATE INDEX idx3 ON npc_services(service_object_id);";
1946      }
1947  
1948      if (!in_array('npc_servicestatus', $tables)) {
1949 -        $sql[] = "CREATE TABLE `npc_servicestatus` (
1950 -                    `servicestatus_id` int(11) NOT NULL auto_increment,
1951 -                    `instance_id` smallint(6) NOT NULL default '0',
1952 -                    `service_object_id` int(11) NOT NULL default '0',
1953 -                    `status_update_time` datetime NOT NULL default '0000-00-00 00:00:00',
1954 -                    `output` varchar(255) NOT NULL default '',
1955 -                    `perfdata` varchar(255) NOT NULL default '',
1956 -                    `current_state` smallint(6) NOT NULL default '0',
1957 -                    `has_been_checked` smallint(6) NOT NULL default '0',
1958 -                    `should_be_scheduled` smallint(6) NOT NULL default '0',
1959 -                    `current_check_attempt` smallint(6) NOT NULL default '0',
1960 -                    `max_check_attempts` smallint(6) NOT NULL default '0',
1961 -                    `last_check` datetime NOT NULL default '0000-00-00 00:00:00',
1962 -                    `next_check` datetime NOT NULL default '0000-00-00 00:00:00',
1963 -                    `check_type` smallint(6) NOT NULL default '0',
1964 -                    `last_state_change` datetime NOT NULL default '0000-00-00 00:00:00',
1965 -                    `last_hard_state_change` datetime NOT NULL default '0000-00-00 00:00:00',
1966 -                    `last_hard_state` smallint(6) NOT NULL default '0',
1967 -                    `last_time_ok` datetime NOT NULL default '0000-00-00 00:00:00',
1968 -                    `last_time_warning` datetime NOT NULL default '0000-00-00 00:00:00',
1969 -                    `last_time_unknown` datetime NOT NULL default '0000-00-00 00:00:00',
1970 -                    `last_time_critical` datetime NOT NULL default '0000-00-00 00:00:00',
1971 -                    `state_type` smallint(6) NOT NULL default '0',
1972 -                    `last_notification` datetime NOT NULL default '0000-00-00 00:00:00',
1973 -                    `next_notification` datetime NOT NULL default '0000-00-00 00:00:00',
1974 -                    `no_more_notifications` smallint(6) NOT NULL default '0',
1975 -                    `notifications_enabled` smallint(6) NOT NULL default '0',
1976 -                    `problem_has_been_acknowledged` smallint(6) NOT NULL default '0',
1977 -                    `acknowledgement_type` smallint(6) NOT NULL default '0',
1978 -                    `current_notification_number` smallint(6) NOT NULL default '0',
1979 -                    `passive_checks_enabled` smallint(6) NOT NULL default '0',
1980 -                    `active_checks_enabled` smallint(6) NOT NULL default '0',
1981 -                    `event_handler_enabled` smallint(6) NOT NULL default '0',
1982 -                    `flap_detection_enabled` smallint(6) NOT NULL default '0',
1983 -                    `is_flapping` smallint(6) NOT NULL default '0',
1984 -                    `percent_state_change` double NOT NULL default '0',
1985 -                    `latency` double NOT NULL default '0',
1986 -                    `execution_time` double NOT NULL default '0',
1987 -                    `scheduled_downtime_depth` smallint(6) NOT NULL default '0',
1988 -                    `failure_prediction_enabled` smallint(6) NOT NULL default '0',
1989 -                    `process_performance_data` smallint(6) NOT NULL default '0',
1990 -                    `obsess_over_service` smallint(6) NOT NULL default '0',
1991 -                    `modified_service_attributes` int(11) NOT NULL default '0',
1992 -                    `event_handler` varchar(255) NOT NULL default '',
1993 -                    `check_command` varchar(255) NOT NULL default '',
1994 -                    `normal_check_interval` double NOT NULL default '0',
1995 -                    `retry_check_interval` double NOT NULL default '0',
1996 -                    `check_timeperiod_object_id` int(11) NOT NULL default '0',
1997 -                    PRIMARY KEY  (`servicestatus_id`),
1998 -                    UNIQUE KEY `object_id` (`service_object_id`),
1999 -                    KEY `idx1` (`current_state`)
2000 -                  ) ENGINE=InnoDB COMMENT='Current service status information';";
2001 +        $sql[] = "
2002 +                       CREATE TABLE IF NOT EXISTS `npc_servicestatus` (
2003 +                         `servicestatus_id` int(11) NOT NULL auto_increment,
2004 +                         `instance_id` smallint(6) NOT NULL default '0',
2005 +                         `service_object_id` int(11) NOT NULL default '0',
2006 +                         `status_update_time` datetime NOT NULL default '0000-00-00 00:00:00',
2007 +                         `output` varchar(255) character set latin1 NOT NULL default '',
2008 +                         `long_output` TEXT NOT NULL default '',
2009 +                         `perfdata` TEXT character set latin1 NOT NULL default '',
2010 +                         `current_state` smallint(6) NOT NULL default '0',
2011 +                         `has_been_checked` smallint(6) NOT NULL default '0',
2012 +                         `should_be_scheduled` smallint(6) NOT NULL default '0',
2013 +                         `current_check_attempt` smallint(6) NOT NULL default '0',
2014 +                         `max_check_attempts` smallint(6) NOT NULL default '0',
2015 +                         `last_check` datetime NOT NULL default '0000-00-00 00:00:00',
2016 +                         `next_check` datetime NOT NULL default '0000-00-00 00:00:00',
2017 +                         `check_type` smallint(6) NOT NULL default '0',
2018 +                         `last_state_change` datetime NOT NULL default '0000-00-00 00:00:00',
2019 +                         `last_hard_state_change` datetime NOT NULL default '0000-00-00 00:00:00',
2020 +                         `last_hard_state` smallint(6) NOT NULL default '0',
2021 +                         `last_time_ok` datetime NOT NULL default '0000-00-00 00:00:00',
2022 +                         `last_time_warning` datetime NOT NULL default '0000-00-00 00:00:00',
2023 +                         `last_time_unknown` datetime NOT NULL default '0000-00-00 00:00:00',
2024 +                         `last_time_critical` datetime NOT NULL default '0000-00-00 00:00:00',
2025 +                         `state_type` smallint(6) NOT NULL default '0',
2026 +                         `last_notification` datetime NOT NULL default '0000-00-00 00:00:00',
2027 +                         `next_notification` datetime NOT NULL default '0000-00-00 00:00:00',
2028 +                         `no_more_notifications` smallint(6) NOT NULL default '0',
2029 +                         `notifications_enabled` smallint(6) NOT NULL default '0',
2030 +                         `problem_has_been_acknowledged` smallint(6) NOT NULL default '0',
2031 +                         `acknowledgement_type` smallint(6) NOT NULL default '0',
2032 +                         `current_notification_number` smallint(6) NOT NULL default '0',
2033 +                         `passive_checks_enabled` smallint(6) NOT NULL default '0',
2034 +                         `active_checks_enabled` smallint(6) NOT NULL default '0',
2035 +                         `event_handler_enabled` smallint(6) NOT NULL default '0',
2036 +                         `flap_detection_enabled` smallint(6) NOT NULL default '0',
2037 +                         `is_flapping` smallint(6) NOT NULL default '0',
2038 +                         `percent_state_change` double NOT NULL default '0',
2039 +                         `latency` double NOT NULL default '0',
2040 +                         `execution_time` double NOT NULL default '0',
2041 +                         `scheduled_downtime_depth` smallint(6) NOT NULL default '0',
2042 +                         `failure_prediction_enabled` smallint(6) NOT NULL default '0',
2043 +                         `process_performance_data` smallint(6) NOT NULL default '0',
2044 +                         `obsess_over_service` smallint(6) NOT NULL default '0',
2045 +                         `modified_service_attributes` int(11) NOT NULL default '0',
2046 +                         `event_handler` varchar(255) character set latin1 NOT NULL default '',
2047 +                         `check_command` varchar(255) character set latin1 NOT NULL default '',
2048 +                         `normal_check_interval` double NOT NULL default '0',
2049 +                         `retry_check_interval` double NOT NULL default '0',
2050 +                         `check_timeperiod_object_id` int(11) NOT NULL default '0',
2051 +                         PRIMARY KEY  (`servicestatus_id`),
2052 +                         UNIQUE KEY `object_id` (`service_object_id`),
2053 +                         KEY `instance_id` (`instance_id`),
2054 +                         KEY `status_update_time` (`status_update_time`),
2055 +                         KEY `current_state` (`current_state`),
2056 +                         KEY `check_type` (`check_type`),
2057 +                         KEY `state_type` (`state_type`),
2058 +                         KEY `last_state_change` (`last_state_change`),
2059 +                         KEY `notifications_enabled` (`notifications_enabled`),
2060 +                         KEY `problem_has_been_acknowledged` (`problem_has_been_acknowledged`),
2061 +                         KEY `active_checks_enabled` (`active_checks_enabled`),
2062 +                         KEY `passive_checks_enabled` (`passive_checks_enabled`),
2063 +                         KEY `event_handler_enabled` (`event_handler_enabled`),
2064 +                         KEY `flap_detection_enabled` (`flap_detection_enabled`),
2065 +                         KEY `is_flapping` (`is_flapping`),
2066 +                         KEY `percent_state_change` (`percent_state_change`),
2067 +                         KEY `latency` (`latency`),
2068 +                         KEY `execution_time` (`execution_time`),
2069 +                         KEY `scheduled_downtime_depth` (`scheduled_downtime_depth`)
2070 +                       ) ENGINE=MyISAM  COMMENT='Current service status information';
2071 +               ";
2072 +        $sql[] = "CREATE INDEX idx1 ON npc_servicestatus(current_state);";
2073      }
2074  
2075      if (!in_array('npc_statehistory', $tables)) {
2076 -        $sql[] = "CREATE TABLE `npc_statehistory` (
2077 -                    `statehistory_id` int(11) NOT NULL auto_increment,
2078 -                    `instance_id` smallint(6) NOT NULL default '0',
2079 -                    `state_time` datetime NOT NULL default '0000-00-00 00:00:00',
2080 -                    `state_time_usec` int(11) NOT NULL default '0',
2081 -                    `object_id` int(11) NOT NULL default '0',
2082 -                    `state_change` smallint(6) NOT NULL default '0',
2083 -                    `state` smallint(6) NOT NULL default '0',
2084 -                    `state_type` smallint(6) NOT NULL default '0',
2085 -                    `current_check_attempt` smallint(6) NOT NULL default '0',
2086 -                    `max_check_attempts` smallint(6) NOT NULL default '0',
2087 -                    `last_state` smallint(6) NOT NULL default '-1',
2088 -                    `last_hard_state` smallint(6) NOT NULL default '-1',
2089 -                    `output` varchar(255) NOT NULL default '',
2090 -                    PRIMARY KEY  (`statehistory_id`)
2091 -                  ) ENGINE=InnoDB COMMENT='Historical host and service state changes';";
2092 +        $sql[] = "
2093 +                       CREATE TABLE IF NOT EXISTS `npc_statehistory` (
2094 +                         `statehistory_id` int(11) NOT NULL auto_increment,
2095 +                         `instance_id` smallint(6) NOT NULL default '0',
2096 +                         `state_time` datetime NOT NULL default '0000-00-00 00:00:00',
2097 +                         `state_time_usec` int(11) NOT NULL default '0',
2098 +                         `object_id` int(11) NOT NULL default '0',
2099 +                         `state_change` smallint(6) NOT NULL default '0',
2100 +                         `state` smallint(6) NOT NULL default '0',
2101 +                         `state_type` smallint(6) NOT NULL default '0',
2102 +                         `current_check_attempt` smallint(6) NOT NULL default '0',
2103 +                         `max_check_attempts` smallint(6) NOT NULL default '0',
2104 +                         `last_state` smallint(6) NOT NULL default '-1',
2105 +                         `last_hard_state` smallint(6) NOT NULL default '-1',
2106 +                         `output` varchar(255) character set latin1 NOT NULL default '',
2107 +                         `long_output` TEXT NOT NULL default '',
2108 +                         PRIMARY KEY  (`statehistory_id`)
2109 +                       ) ENGINE=MyISAM COMMENT='Historical host and service state changes';
2110 +               ";
2111      }
2112  
2113      if (!in_array('npc_systemcommands', $tables)) {
2114 -        $sql[] = "CREATE TABLE `npc_systemcommands` (
2115 -                    `systemcommand_id` int(11) NOT NULL auto_increment,
2116 -                    `instance_id` smallint(6) NOT NULL default '0',
2117 -                    `start_time` datetime NOT NULL default '0000-00-00 00:00:00',
2118 -                    `start_time_usec` int(11) NOT NULL default '0',
2119 -                    `end_time` datetime NOT NULL default '0000-00-00 00:00:00',
2120 -                    `end_time_usec` int(11) NOT NULL default '0',
2121 -                    `command_line` varchar(255) NOT NULL default '',
2122 -                    `timeout` smallint(6) NOT NULL default '0',
2123 -                    `early_timeout` smallint(6) NOT NULL default '0',
2124 -                    `execution_time` double NOT NULL default '0',
2125 -                    `return_code` smallint(6) NOT NULL default '0',
2126 -                    `output` varchar(255) NOT NULL default '',
2127 -                    PRIMARY KEY  (`systemcommand_id`),
2128 -                    UNIQUE KEY `instance_id` (`instance_id`,`start_time`,`start_time_usec`)
2129 -                  ) ENGINE=InnoDB COMMENT='Historical system commands that are executed';";
2130 +        $sql[] = "
2131 +                       CREATE TABLE IF NOT EXISTS `npc_systemcommands` (
2132 +                         `systemcommand_id` int(11) NOT NULL auto_increment,
2133 +                         `instance_id` smallint(6) NOT NULL default '0',
2134 +                         `start_time` datetime NOT NULL default '0000-00-00 00:00:00',
2135 +                         `start_time_usec` int(11) NOT NULL default '0',
2136 +                         `end_time` datetime NOT NULL default '0000-00-00 00:00:00',
2137 +                         `end_time_usec` int(11) NOT NULL default '0',
2138 +                         `command_line` varchar(255) character set latin1 NOT NULL default '',
2139 +                         `timeout` smallint(6) NOT NULL default '0',
2140 +                         `early_timeout` smallint(6) NOT NULL default '0',
2141 +                         `execution_time` double NOT NULL default '0',
2142 +                         `return_code` smallint(6) NOT NULL default '0',
2143 +                         `output` varchar(255) character set latin1 NOT NULL default '',
2144 +                         `long_output` TEXT NOT NULL default '',
2145 +                         PRIMARY KEY  (`systemcommand_id`),
2146 +                         KEY `instance_id` (`instance_id`),
2147 +                         KEY `start_time` (`start_time`)
2148 +                       ) ENGINE=MyISAM  COMMENT='Historical system commands that are executed';
2149 +               ";
2150 +               // FIXME? $sql[] = "UNIQUE KEY `instance_id` (`instance_id`,`start_time`,`start_time_usec`)";
2151      }
2152  
2153      if (!in_array('npc_timedeventqueue', $tables)) {
2154 -        $sql[] = "CREATE TABLE `npc_timedeventqueue` (
2155 -                    `timedeventqueue_id` int(11) NOT NULL auto_increment,
2156 -                    `instance_id` smallint(6) NOT NULL default '0',
2157 -                    `event_type` smallint(6) NOT NULL default '0',
2158 -                    `queued_time` datetime NOT NULL default '0000-00-00 00:00:00',
2159 -                    `queued_time_usec` int(11) NOT NULL default '0',
2160 -                    `scheduled_time` datetime NOT NULL default '0000-00-00 00:00:00',
2161 -                    `recurring_event` smallint(6) NOT NULL default '0',
2162 -                    `object_id` int(11) NOT NULL default '0',
2163 -                    PRIMARY KEY  (`timedeventqueue_id`)
2164 -                  ) ENGINE=InnoDB COMMENT='Current Nagios event queue';";
2165 +        $sql[] = "
2166 +                       CREATE TABLE IF NOT EXISTS `npc_timedeventqueue` (
2167 +                         `timedeventqueue_id` int(11) NOT NULL auto_increment,
2168 +                         `instance_id` smallint(6) NOT NULL default '0',
2169 +                         `event_type` smallint(6) NOT NULL default '0',
2170 +                         `queued_time` datetime NOT NULL default '0000-00-00 00:00:00',
2171 +                         `queued_time_usec` int(11) NOT NULL default '0',
2172 +                         `scheduled_time` datetime NOT NULL default '0000-00-00 00:00:00',
2173 +                         `recurring_event` smallint(6) NOT NULL default '0',
2174 +                         `object_id` int(11) NOT NULL default '0',
2175 +                         PRIMARY KEY  (`timedeventqueue_id`),
2176 +                         KEY `instance_id` (`instance_id`),
2177 +                         KEY `event_type` (`event_type`),
2178 +                         KEY `scheduled_time` (`scheduled_time`),
2179 +                         KEY `object_id` (`object_id`)
2180 +                       ) ENGINE=MyISAM  COMMENT='Current Nagios event queue';
2181 +               ";
2182      }
2183  
2184      if (!in_array('npc_timedevents', $tables)) {
2185 -        $sql[] = "CREATE TABLE `npc_timedevents` (
2186 -                    `timedevent_id` int(11) NOT NULL auto_increment,
2187 -                    `instance_id` smallint(6) NOT NULL default '0',
2188 -                    `event_type` smallint(6) NOT NULL default '0',
2189 -                    `queued_time` datetime NOT NULL default '0000-00-00 00:00:00',
2190 -                    `queued_time_usec` int(11) NOT NULL default '0',
2191 -                    `event_time` datetime NOT NULL default '0000-00-00 00:00:00',
2192 -                    `event_time_usec` int(11) NOT NULL default '0',
2193 -                    `scheduled_time` datetime NOT NULL default '0000-00-00 00:00:00',
2194 -                    `recurring_event` smallint(6) NOT NULL default '0',
2195 -                    `object_id` int(11) NOT NULL default '0',
2196 -                    `deletion_time` datetime NOT NULL default '0000-00-00 00:00:00',
2197 -                    `deletion_time_usec` int(11) NOT NULL default '0',
2198 -                    PRIMARY KEY  (`timedevent_id`),
2199 -                    UNIQUE KEY `instance_id` (`instance_id`,`event_type`,`scheduled_time`,`object_id`)
2200 -                  ) ENGINE=InnoDB COMMENT='Historical events from the Nagios event queue';";
2201 +        $sql[] = "
2202 +                       CREATE TABLE IF NOT EXISTS `npc_timedevents` (
2203 +                         `timedevent_id` int(11) NOT NULL auto_increment,
2204 +                         `instance_id` smallint(6) NOT NULL default '0',
2205 +                         `event_type` smallint(6) NOT NULL default '0',
2206 +                         `queued_time` datetime NOT NULL default '0000-00-00 00:00:00',
2207 +                         `queued_time_usec` int(11) NOT NULL default '0',
2208 +                         `event_time` datetime NOT NULL default '0000-00-00 00:00:00',
2209 +                         `event_time_usec` int(11) NOT NULL default '0',
2210 +                         `scheduled_time` datetime NOT NULL default '0000-00-00 00:00:00',
2211 +                         `recurring_event` smallint(6) NOT NULL default '0',
2212 +                         `object_id` int(11) NOT NULL default '0',
2213 +                         `deletion_time` datetime NOT NULL default '0000-00-00 00:00:00',
2214 +                         `deletion_time_usec` int(11) NOT NULL default '0',
2215 +                         PRIMARY KEY  (`timedevent_id`),
2216 +                         KEY `instance_id` (`instance_id`),
2217 +                         KEY `event_type` (`event_type`),
2218 +                         KEY `scheduled_time` (`scheduled_time`),
2219 +                         KEY `object_id` (`object_id`)
2220 +                       ) ENGINE=MyISAM  COMMENT='Historical events from the Nagios event queue';
2221 +               ";
2222 +               // FIXME? $sql[] = "UNIQUE KEY `instance_id` (`instance_id`,`event_type`,`scheduled_time`,`object_id`)";
2223      }
2224  
2225      if (!in_array('npc_timeperiod_timeranges', $tables)) {
2226 -        $sql[] = "CREATE TABLE `npc_timeperiod_timeranges` (
2227 -                    `timeperiod_timerange_id` int(11) NOT NULL auto_increment,
2228 -                    `instance_id` smallint(6) NOT NULL default '0',
2229 -                    `timeperiod_id` int(11) NOT NULL default '0',
2230 -                    `day` smallint(6) NOT NULL default '0',
2231 -                    `start_sec` int(11) NOT NULL default '0',
2232 -                    `end_sec` int(11) NOT NULL default '0',
2233 -                    PRIMARY KEY  (`timeperiod_timerange_id`),
2234 -                    UNIQUE KEY `instance_id` (`timeperiod_id`,`day`,`start_sec`,`end_sec`)
2235 -                  ) ENGINE=InnoDB COMMENT='Timeperiod definitions';";
2236 +        $sql[] = "
2237 +                       CREATE TABLE IF NOT EXISTS `npc_timeperiod_timeranges` (
2238 +                         `timeperiod_timerange_id` int(11) NOT NULL auto_increment,
2239 +                         `instance_id` smallint(6) NOT NULL default '0',
2240 +                         `timeperiod_id` int(11) NOT NULL default '0',
2241 +                         `day` smallint(6) NOT NULL default '0',
2242 +                         `start_sec` int(11) NOT NULL default '0',
2243 +                         `end_sec` int(11) NOT NULL default '0',
2244 +                         PRIMARY KEY  (`timeperiod_timerange_id`),
2245 +                         UNIQUE KEY `instance_id` (`timeperiod_id`,`day`,`start_sec`,`end_sec`)
2246 +                       ) ENGINE=MyISAM  COMMENT='Timeperiod definitions';
2247 +               ";
2248      }
2249  
2250      if (!in_array('npc_timeperiods', $tables)) {
2251 -        $sql[] = "CREATE TABLE `npc_timeperiods` (
2252 -                    `timeperiod_id` int(11) NOT NULL auto_increment,
2253 -                    `instance_id` smallint(6) NOT NULL default '0',
2254 -                    `config_type` smallint(6) NOT NULL default '0',
2255 -                    `timeperiod_object_id` int(11) NOT NULL default '0',
2256 -                    `alias` varchar(255) NOT NULL default '',
2257 -                    PRIMARY KEY  (`timeperiod_id`),
2258 -                    UNIQUE KEY `instance_id` (`instance_id`,`config_type`,`timeperiod_object_id`)
2259 -                  ) ENGINE=InnoDB COMMENT='Timeperiod definitions';";
2260 +        $sql[] = "
2261 +                       CREATE TABLE IF NOT EXISTS `npc_timeperiods` (
2262 +                         `timeperiod_id` int(11) NOT NULL auto_increment,
2263 +                         `instance_id` smallint(6) NOT NULL default '0',
2264 +                         `config_type` smallint(6) NOT NULL default '0',
2265 +                         `timeperiod_object_id` int(11) NOT NULL default '0',
2266 +                         `alias` varchar(255) character set latin1 NOT NULL default '',
2267 +                         PRIMARY KEY  (`timeperiod_id`),
2268 +                         UNIQUE KEY `instance_id` (`instance_id`,`config_type`,`timeperiod_object_id`)
2269 +                       ) ENGINE=MyISAM  COMMENT='Timeperiod definitions';
2270 +               ";
2271      }
2272  
2273 +       // Cacti only: npc_service_graphs
2274      if (!in_array('npc_service_graphs', $tables)) {
2275 -        $sql[] = "CREATE TABLE `npc_service_graphs` (
2276 -                    `service_graph_id` int(11) NOT NULL auto_increment,
2277 -                    `service_object_id` int(11) NOT NULL,
2278 -                    `local_graph_id` mediumint(8) unsigned NOT NULL,
2279 -                    `pri` tinyint(1) default 1,
2280 -                    PRIMARY KEY  (`service_graph_id`),
2281 -                    KEY `idx1` (`service_object_id`)
2282 -                  ) ENGINE=InnoDB;";
2283 +        $sql[] = "
2284 +                       CREATE TABLE `npc_service_graphs` (
2285 +                               `service_graph_id` int(11) NOT NULL auto_increment,
2286 +                               `service_object_id` int(11) NOT NULL,
2287 +                               `local_graph_id` mediumint(8) unsigned NOT NULL,
2288 +                               `pri` tinyint(1) default 1,
2289 +                               PRIMARY KEY  (`service_graph_id`),
2290 +                               KEY `idx1` (`service_object_id`)
2291 +                   ) ENGINE=MyISAM;
2292 +               ";
2293      }
2294  
2295 +       // Cacti only: npc_host_graphs
2296      if (!in_array('npc_host_graphs', $tables)) {
2297 -        $sql[] = "CREATE TABLE `npc_host_graphs` (
2298 -                    `host_graph_id` int(11) NOT NULL auto_increment,
2299 -                    `host_object_id` int(11) NOT NULL,
2300 -                    `local_graph_id` mediumint(8) unsigned NOT NULL,
2301 -                    `pri` tinyint(1) default 1,
2302 -                    PRIMARY KEY  (`host_graph_id`),
2303 -                    KEY `idx1` (`host_object_id`)
2304 -                  ) ENGINE=InnoDB;";
2305 +        $sql[] = "
2306 +                       CREATE TABLE `npc_host_graphs` (
2307 +                               `host_graph_id` int(11) NOT NULL auto_increment,
2308 +                               `host_object_id` int(11) NOT NULL,
2309 +                               `local_graph_id` mediumint(8) unsigned NOT NULL,
2310 +                               `pri` tinyint(1) default 1,
2311 +                               PRIMARY KEY  (`host_graph_id`),
2312 +                               KEY `idx1` (`host_object_id`)
2313 +                       ) ENGINE=MyISAM;
2314 +               ";
2315      }
2316  
2317 +       // Cacti only: npc_settings
2318      if (!in_array('npc_settings', $tables)) {
2319 -        $sql[] = "CREATE TABLE `npc_settings` (
2320 -                    `user_id` mediumint(8) unsigned NOT NULL,
2321 -                    `settings` text default null,
2322 -                    PRIMARY KEY  (`user_id`)
2323 -                  ) ENGINE=InnoDB COMMENT='NPC user settings';";
2324 -    } else {
2325 -
2326 +        $sql[] = "
2327 +                       CREATE TABLE `npc_settings` (
2328 +                               `user_id` mediumint(8) unsigned NOT NULL,
2329 +                               `settings` text default null,
2330 +                               PRIMARY KEY  (`user_id`)
2331 +                       ) ENGINE=MyISAM COMMENT='NPC user settings';
2332 +               ";
2333      }
2334  
2335      if (!empty($sql)) {
2336 -        for ($a = 0; $a < count($sql); $a++) {
2337 -             $result = db_execute($sql[$a]);
2338 +               foreach ($sql as $query) {
2339 +             db_execute($query);
2340          }
2341     }
2342  }
2343 @@ -1477,7 +1661,7 @@
2344      global $config;
2345  
2346      if (isset($_SESSION["sess_user_id"])) {
2347 -  
2348 +
2349          $user_id = $_SESSION["sess_user_id"];
2350  
2351          $npc_realm = db_fetch_cell("SELECT id FROM plugin_config WHERE directory = 'npc'");
2352 @@ -1488,8 +1672,8 @@
2353                  $cp = false;
2354                  if (basename($_SERVER["PHP_SELF"]) == "npc.php") { $cp = true; }
2355  
2356 -                print '<a href="' . $config['url_path'] . 'plugins/npc/npc.php"><img src="' 
2357 -                     . $config['url_path'] . 'plugins/npc/images/tab_npc' 
2358 +                print '<a href="' . $config['url_path'] . 'plugins/npc/npc.php"><img src="'
2359 +                     . $config['url_path'] . 'plugins/npc/images/tab_npc'
2360                       . ($cp ? "_down": "") . '.gif" alt="npc" align="absmiddle" border="0"></a>';
2361              }
2362          }
2363 @@ -1502,7 +1686,7 @@
2364      global $npc_config_type;
2365  
2366      if (isset($_SESSION["sess_user_id"])) {
2367 -  
2368 +
2369          $user_id = $_SESSION["sess_user_id"];
2370  
2371          $npc_realm = db_fetch_cell("SELECT id FROM plugin_config WHERE directory = 'npc'");
2372 @@ -1516,10 +1700,10 @@
2373              //npc_upgrade_tables ();
2374  
2375              // Add a new realm
2376 -            if ($old_npc_version != '2.0.2' || $old_npc_version != '2.0.3') { 
2377 +            if ($old_npc_version != '2.0.2' || $old_npc_version != '2.0.3') {
2378                  api_plugin_register_realm ('npc', 'npc1.php', 'NPC Global Commands', 1);
2379              }
2380 -        
2381 +
2382              // Reset stored cookie values.
2383              db_execute("DELETE FROM npc_settings");
2384  
2385 @@ -1562,7 +1746,7 @@
2386                      "description" => "The path to the Nagios command file (nagios.cmd).",
2387                      "method" => "textbox",
2388                      "max_length" => 255,
2389 -                ),  
2390 +                ),
2391                  "npc_nagios_url" => array(
2392                      "friendly_name" => "Nagios URL",
2393                      "description" => "The full URL to your Nagios installation (http://nagios.company.com/nagios/)",
This page took 0.539905 seconds and 3 git commands to generate.