summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--updates/3.00-to-x.xx.mysql16
-rw-r--r--updates/3.00-to-x.xx.php83
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