- improved the upgrade scripts/file a bit and tested them against a couple

of older (PEAR-less) Drupal databases
4.0.x
Dries Buytaert 2001-11-04 15:38:44 +00:00
parent 50b92b9154
commit 29364d5b55
2 changed files with 68 additions and 31 deletions

View File

@ -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;

View File

@ -9,51 +9,80 @@
include "includes/common.inc";
/*
** 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'");
}
}
?>