X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=config%2Fupdatedb.php;fp=config%2Fupdatedb.php;h=0000000000000000000000000000000000000000;hb=da810bc54afc15c82c95e2ed764ae0c5304190f4;hp=3012f2355c7cb42914a70f5c431df4daa6ff7c46;hpb=66a0db100b8c65b7d85255cee529cbf7c3333324;p=diogenes.git diff --git a/config/updatedb.php b/config/updatedb.php deleted file mode 100755 index 3012f23..0000000 --- a/config/updatedb.php +++ /dev/null @@ -1,230 +0,0 @@ -#!/usr/bin/php -q -info("* Pre-upgrading master tables : diogenes_*"); - $this->preupgradeMaster($newversion); - - // upgrade barrels - $res = $this->dbh->query("select alias from diogenes_site"); - while (list($alias) = mysql_fetch_row($res)) - { - $this->info("* Upgrading barrel '$alias'"); - $this->upgradeBarrel($alias, $newversion); - } - mysql_free_result($res); - - // upgrade master tables - $this->info("* Upgrading master tables : diogenes_*"); - $this->upgradeMaster($newversion); - } - - - /** Upgrades the master (i.e. common) tables before touching the barrel tables. - * - * @param $newversion - */ - function preupgradeMaster($newversion) - { - switch($newversion) { - case "0.9.16+0.9.17pre15"; - $this->info(" - adding 'barrel' field to 'diogenes_options' table"); - $this->dbh->query("ALTER TABLE `diogenes_option` ADD `barrel` VARCHAR( 16 ) NOT NULL FIRST;"); - $this->dbh->query( - "ALTER TABLE `diogenes_option` DROP PRIMARY KEY , - ADD PRIMARY KEY ( `barrel` , `name` )"); - break; - - default: - break; - } - } - - - /** Upgrade a barrel's tables - * - * @param $alias - * @param $newversion - */ - function upgradeBarrel($alias, $newversion) - { -# $this->info("Processing : {$alias}_menu, {$alias}_page and {$alias}_option"); - - switch($newversion) { - case "0.9.10": - $this->info(" - upgrading : {$alias}_menu"); - // these field where NULL, change to NOT NULL - $this->dbh->query("ALTER TABLE `{$alias}_menu` CHANGE `link` `link` TEXT NOT NULL"); - $this->dbh->query("ALTER TABLE `{$alias}_menu` CHANGE `ordre` `ordre` SMALLINT( 6 ) UNSIGNED NOT NULL"); - $this->dbh->query("ALTER TABLE `{$alias}_menu` CHANGE `MIDpere` `MIDpere` SMALLINT( 6 ) UNSIGNED NOT NULL"); - - // break down old 'link' column into 'link' and 'PID' - $this->dbh->query("ALTER TABLE `{$alias}_menu` ADD `PID` SMALLINT( 6 ) UNSIGNED NOT NULL"); - $res2 = $this->dbh->query("select MID,link from {$alias}_menu"); - while (list($MID,$link) = mysql_fetch_row($res2)) { - switch (substr($link,0,3)) { - case "PI:": - $pid = substr($link,3); - $this->dbh->query("UPDATE `{$alias}_menu` SET link='',PID='$pid' WHERE MID='$MID'"); - break; - case "SE:": - $adr = substr($link,3); - $this->dbh->query("UPDATE `{$alias}_menu` SET link='$adr' WHERE MID='$MID'"); - break; - } - } - mysql_free_result($res2); - - $this->info(" - creating : {$alias}_option"); - $this->dbh->query("CREATE TABLE `{$alias}_option` (name VARCHAR( 32 ) NOT NULL, value TEXT NOT NULL, PRIMARY KEY (`name`)) TYPE=MyISAM;"); - - $this->info(" - registering title, description and keywords"); - $res2 = $this->dbh->query("select title,description,keywords from diogenes_site where alias='$alias'"); - list($title,$description,$keywords) = mysql_fetch_row($res2); - $this->dbh->query("replace into `{$alias}_option` set name='title',value='$title'"); - $this->dbh->query("replace into `{$alias}_option` set name='description',value='$description'"); - $this->dbh->query("replace into `{$alias}_option` set name='keywords',value='$keywords'"); - break; - - case "0.9.12": - $this->info(" - adding 'template' field"); - $this->dbh->query("ALTER TABLE `{$alias}_page` ADD `template` VARCHAR(255) NOT NULL"); - $this->info(" - dropping 'hits' field"); - $this->dbh->query("ALTER TABLE `{$alias}_page` DROP `hits`"); - $this->info(" - replacing 'visible' field by 'status'"); - $this->dbh->query("ALTER TABLE `{$alias}_page` DROP `visible`"); - $this->dbh->query("ALTER TABLE `{$alias}_page` ADD `status` tinyint(1) unsigned NOT NULL"); - $this->info(" - modifying 'perms' and 'wperms' to add 'forbidden' access"); - $this->dbh->query("ALTER TABLE `{$alias}_page` CHANGE `perms` `perms` ENUM( 'public', 'auth', 'user', 'admin', 'forbidden' ) DEFAULT 'public' NOT NULL"); - $this->dbh->query("ALTER TABLE `{$alias}_page` CHANGE `wperms` `wperms` ENUM( 'public', 'auth', 'user', 'admin', 'forbidden' ) DEFAULT 'admin' NOT NULL"); - break; - - case "0.9.16": - $this->info(" - changing page id fields to INT UNSIGNED"); - $this->dbh->query("ALTER TABLE `{$alias}_page` CHANGE `PID` `PID` INT( 10 ) UNSIGNED NOT NULL AUTO_INCREMENT"); - $this->dbh->query("ALTER TABLE `{$alias}_menu` CHANGE `PID` `PID` INT( 10 ) UNSIGNED NOT NULL default '0'"); - $this->info(" - changing menu id fields to INT UNSIGNED"); - $this->dbh->query("ALTER TABLE `{$alias}_menu` CHANGE `MID` `MID` INT( 10 ) UNSIGNED NOT NULL AUTO_INCREMENT"); - $this->dbh->query("ALTER TABLE `{$alias}_menu` CHANGE `MIDpere` `MIDpere` INT( 10 ) UNSIGNED NOT NULL default '0'"); - $this->dbh->query("ALTER TABLE `{$alias}_menu` CHANGE `ordre` `ordre` INT( 10 ) UNSIGNED NOT NULL default '0'"); - break; - - case "0.9.16+0.9.17pre15": - $this->info(" - merging '{$alias}_option' into 'diogenes_options'"); - $res = $this->dbh->query("select name,value from `{$alias}_option`"); - while (list($o_name,$o_value) = mysql_fetch_row($res)) - { - $this->dbh->query("insert into `diogenes_option` set barrel='$alias',name='$o_name',value='".addslashes($o_value)."'"); - } - mysql_free_result($res); - $this->info(" - dropping '{$alias}_option'"); - $this->dbh->query("drop table `{$alias}_option`"); - - $this->info(" - adding 'parent' field to `{$alias}_page`"); - $this->dbh->query("ALTER TABLE `{$alias}_page` ADD `parent` INT( 10 ) UNSIGNED NOT NULL default '0' AFTER `PID`"); - $res = $this->dbh->query("select PID from `{$alias}_page` where location=''"); - list($homepage) = mysql_fetch_row($res); - $this->dbh->query("update `{$alias}_page` set parent='$homepage' where location!=''"); - - $this->info(" - ordering `{$alias}_page` entries by `location`"); - $this->dbh->query("ALTER TABLE `{$alias}_page` CHANGE `location` `location` VARCHAR( 255 ) NOT NULL"); - $this->dbh->query("ALTER TABLE `{$alias}_page` ORDER BY `location`"); - break; - - default: - $this->info(" - no changes needed."); - break; - } - } - - - /** Upgrades the master (i.e. common) tables after the barrel tables have been updated. - * - * @param $newversion - */ - function upgradeMaster($newversion) - { - // upgrade master tables - switch($newversion) { - case "0.9.10": - $this->info(" - dropping fields : title, description, keywords"); - $this->dbh->query("ALTER TABLE `diogenes_site` DROP `title`"); - $this->dbh->query("ALTER TABLE `diogenes_site` DROP `description`"); - $this->dbh->query("ALTER TABLE `diogenes_site` DROP `keywords`"); - break; - - case "0.9.15": - $this->info(" - adding field : email"); - $this->dbh->query("ALTER TABLE `diogenes_auth` ADD `email` VARCHAR( 255 ) NOT NULL"); - break; - - case "0.9.16": - $this->info(" - changing user id fields to INT UNSIGNED"); - $this->dbh->query("ALTER TABLE `diogenes_auth` CHANGE `user_id` `user_id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT"); - $this->dbh->query("ALTER TABLE `diogenes_logsessions` CHANGE `uid` `uid` INT(10) UNSIGNED NOT NULL default '0'"); - $this->dbh->query("ALTER TABLE `diogenes_logsessions` CHANGE `suid` `suid` INT(10) UNSIGNED NOT NULL default '0'"); - $this->dbh->query("ALTER TABLE `diogenes_perm` CHANGE `uid` `uid` INT(10) UNSIGNED NOT NULL default '0'"); - break; - - case "0.9.16+0.9.17pre15": - $this->info(" - creating 'diogenes_plugin' table"); - $this->dbh->query( - "CREATE TABLE `diogenes_plugin` ( - `plugin` varchar(32) NOT NULL default '', - `barrel` varchar(16) NOT NULL default '', - `page` int(10) unsigned NOT NULL default '0', - `pos` int(10) unsigned NOT NULL default '0', - `params` text NOT NULL, - PRIMARY KEY (`plugin`,`barrel`,`page`), - KEY `pos` (`pos`) - ) TYPE=MyISAM;"); - break; - - case "0.9.16+0.9.17pre19": - $this->info(" - changing id of `diogenes_logsessions` to INT(10) UNSIGNED"); - $this->dbh->query("ALTER TABLE `diogenes_logsessions` CHANGE `id` `id` INT( 10 ) UNSIGNED NOT NULL AUTO_INCREMENT"); - break; - - case "0.9.16+0.9.17pre21": - $this->dbh->query("INSERT INTO diogenes_logactions VALUES (13, 'barrel_options', 'the barrel options were updated');"); - $this->dbh->query("INSERT INTO diogenes_logactions VALUES (14, 'barrel_plugins', 'the barrel plugins were modified');"); - $this->dbh->query("INSERT INTO diogenes_logactions VALUES (15, 'page_props', 'the page properties were updated');"); - $this->dbh->query("INSERT INTO diogenes_logactions VALUES (16, 'page_plugins', 'the page plugins were modified');"); - break; - - default: - $this->info(" - no changes needed."); - break; - } - } -} - -/* - * Main routine -*/ -$creator = new DiogenesDbInit("diogenes_option"); -$creator->parseOptions($argv, "diogenes", "localhost", "diogenes", ""); -$creator->run(); - -?>