$db_rev), 'dbSchema'); } $updating = 0; $include_dir_regexp = "/\.sql$/"; if ($handle = opendir($config['install_dir'] . '/sql-schema')) { while (false !== ($file = readdir($handle))) { if (filetype($config['install_dir'] . '/sql-schema/' . $file) == 'file' && preg_match($include_dir_regexp, $file)) { $filelist[] = $file; } } closedir($handle); } asort($filelist); foreach ($filelist as $file) { list($filename,$extension) = explode('.',$file,2); if ($filename > $db_rev) { if (!$updating) { echo "-- Updating database schema\n"; } echo sprintf("%03d",$db_rev) . " -> " . sprintf("%03d",$filename) . " ..."; $err = 0; if ($fd = @fopen($config['install_dir'] . '/sql-schema/' . $file,'r')) { $data = fread($fd,4096); while (!feof($fd)) { $data .= fread($fd,4096); } foreach (explode("\n", $data) as $line) { if (trim($line)) { if ($debug) { echo("$line \n"); } $update = mysql_query($line); if (!$update) { $err++; if ($debug) { echo(mysql_error() . "\n"); } } } } echo " done ($err errors).\n"; } else { echo " Could not open file!\n"; } $updating++; $db_rev = $filename; } } if ($updating) { dbUpdate(array('version' => $db_rev), 'dbSchema'); echo "-- Done\n"; } ?>