diff options
-rw-r--r-- | updates/3.00-to-x.xx.mysql | 16 | ||||
-rw-r--r-- | updates/3.00-to-x.xx.php | 83 |
2 files changed, 68 insertions, 31 deletions
diff --git a/updates/3.00-to-x.xx.mysql b/updates/3.00-to-x.xx.mysql index cb947c8fa..1944b61bc 100644 --- a/updates/3.00-to-x.xx.mysql +++ b/updates/3.00-to-x.xx.mysql @@ -118,10 +118,6 @@ ALTER TABLE blog CHANGE body body_old TEXT DEFAULT '' NOT NULL; ALTER TABLE forum CHANGE body body_old TEXT DEFAULT '' NOT NULL; ALTER TABLE book CHANGE body body_old TEXT DEFAULT '' NOT NULL; -# -# Run the last part of updates/3.00-to-x.xx.php -# - # update the node table: ALTER TABLE node DROP lid; ALTER TABLE node ADD teaser TEXT DEFAULT '' NOT NULL; @@ -134,14 +130,26 @@ ALTER TABLE node CHANGE moderate moderate int(2) DEFAULT '0' NOT NULL; ALTER TABLE node DROP timestamp_posted; ALTER TABLE node DROP timestamp_queued; ALTER TABLE node DROP timestamp_hidden; +UPDATE node SET status = 0 WHERE status = 1; +UPDATE node SET status = 0 WHERE status = 2; UPDATE node SET status = 1 WHERE status = 3; +# +# Run the second part of updates/3.00-to-x.xx.php: +# visit http://www.yoursite.com/3.00-to-x.xx.php?part=2 +# + ALTER TABLE book DROP section; ALTER TABLE users CHANGE session sid varchar(32) DEFAULT '' NOT NULL; # 02/11/01: ALTER TABLE node ADD revisions TEXT DEFAULT '' NOT NULL; +# +# Run the third part of updates/3.00-to-x.xx.php: +# visit http://www.yoursite.com/3.00-to-x.xx.php?part=3 +# + ## work in progress # ALTER TABLE users ADD session TEXT DEFAULT '' NOT NULL; diff --git a/updates/3.00-to-x.xx.php b/updates/3.00-to-x.xx.php index 6d2add3a1..366dfda51 100644 --- a/updates/3.00-to-x.xx.php +++ b/updates/3.00-to-x.xx.php @@ -10,50 +10,79 @@ include "includes/common.inc"; /* -** Create sequence tables for pear-ification of MySQL +** If not in 'safe mode', increase the maximum execution time: */ +if (!get_cfg_var("safe_mode")) { + set_time_limit(180); +} + /* +** Create sequence tables for pear-ification of MySQL +*/ + +if ($part == 1) { -foreach (module_list() as $name) { - if (module_hook($name, "status")) { - print "$name ..."; - db_query("DROP TABLE IF EXISTS ". $name ."_seq"); - db_query("CREATE TABLE ". $name ."_seq (id INTEGER UNSIGNED AUTO_INCREMENT NOT NULL, PRIMARY KEY(id))"); - $result = db_query("SELECT MAX(". ($name == "node" ? "nid" : "lid") .") FROM $name", 1); - $count = $result ? db_result($result, 0) : 0; - db_query("INSERT INTO ". $name ."_seq (id) VALUES ('$count')"); - print "done ($count)<br />"; + foreach (module_list() as $name) { + if (module_hook($name, "status")) { + print "$name ..."; + db_query("DROP TABLE IF EXISTS ". $name ."_seq"); + db_query("CREATE TABLE ". $name ."_seq (id INTEGER UNSIGNED AUTO_INCREMENT NOT NULL, PRIMARY KEY(id))"); + $result = db_query("SELECT MAX(". ($name == "node" ? "nid" : "lid") .") FROM $name", 1); + $count = $result ? db_result($result, 0) : 0; + db_query("INSERT INTO ". $name ."_seq (id) VALUES ('$count')"); + print "done ($count)<br />"; + } } + } -*/ /* ** Give old nodes a teaser: ** update your source tree and database first */ -$result = db_query("SELECT nid FROM node"); +if ($part == 2) { + $result = db_query("SELECT nid FROM node"); -while ($object = db_fetch_object($result)) { + while ($object = db_fetch_object($result)) { - $node = node_load(array("nid" => $object->nid)); + $node = node_load(array("nid" => $object->nid)); + + $body = db_result(db_query("SELECT body_old FROM $node->type WHERE nid = $node->nid"), 0); - $body = db_result(db_query("SELECT body_old FROM $node->type WHERE nid = $node->nid"), 0); - - switch ($node->type) { - case "forum": - case "story": - case "book": - case "page": - case "blog": - node_save($node, array("nid", "body" => $body, "teaser" => node_teaser($body))); - print "updated node '$node->title' ($node->type)<br />"; - break; - default: - print "unknown node '$node->title' ($node->type)<br />"; + switch ($node->type) { + case "forum": + case "story": + case "book": + case "page": + case "blog": + node_save($node, array("nid", "body" => $body, "teaser" => node_teaser($body))); + print "updated node $node->nid '$node->title' ($node->type)<br />"; + break; + default: + print "unknown node $node->nid '$node->title' ($node->type)<br />"; + } + + unset($node); + unset($body); } +} +/* +** Remove old book pages: +*/ + +if ($part == 3) { + + // remove book pages that used to be 'expired': + $result = db_query("SELECT n.nid, n.title FROM node n WHERE n.type = 'book' AND n.status = 0"); + while ($node = db_fetch_object($result)) { + print "removing node $node->nid '$node->title' (dumped node)<br />"; + db_query("DELETE FROM node WHERE nid = '$node->nid'"); + db_query("DELETE FROM book WHERE nid = '$node->nid'"); + db_query("DELETE FROM comments WHERE lid = '$node->nid'"); + } } ?>
\ No newline at end of file |