summaryrefslogtreecommitdiff
path: root/database/updates.inc
diff options
context:
space:
mode:
Diffstat (limited to 'database/updates.inc')
-rw-r--r--database/updates.inc75
1 files changed, 74 insertions, 1 deletions
diff --git a/database/updates.inc b/database/updates.inc
index 4b5177bfd..ad8d5420c 100644
--- a/database/updates.inc
+++ b/database/updates.inc
@@ -43,7 +43,8 @@ $sql_updates = array(
"2005-07-29" => "update_142",
"2005-07-30" => "update_143",
"2005-08-08" => "update_144",
- "2005-08-15" => "update_145"
+ "2005-08-15" => "update_145",
+ "2005-08-25" => "update_146"
);
function update_110() {
@@ -705,6 +706,78 @@ function update_145() {
return $ret;
}
+function update_146() {
+ $ret = array();
+
+ if ($GLOBALS['db_type'] == 'mysql') {
+ $ret[] = update_sql("CREATE TABLE {node_revisions}
+ SELECT nid, nid AS vid, uid, type, title, body, teaser, changed AS timestamp, format
+ FROM {node}");
+
+ $ret[] = update_sql("ALTER TABLE {node_revisions} CHANGE nid nid int(10) unsigned NOT NULL default '0'");
+ $ret[] = update_sql("ALTER TABLE {node_revisions} ADD log longtext");
+
+ $ret[] = update_sql("ALTER TABLE {node} ADD vid int(10) unsigned NOT NULL default '0'");
+ $ret[] = update_sql("ALTER TABLE {files} ADD vid int(10) unsigned NOT NULL default '0'");
+ $ret[] = update_sql("ALTER TABLE {book} ADD vid int(10) unsigned NOT NULL default '0'");
+ $ret[] = update_sql("ALTER TABLE {forum} ADD vid int(10) unsigned NOT NULL default '0'");
+
+ $ret[] = update_sql("ALTER TABLE {book} DROP PRIMARY KEY");
+ $ret[] = update_sql("ALTER TABLE {forum} DROP PRIMARY KEY");
+ $ret[] = update_sql("ALTER TABLE {files} DROP PRIMARY KEY");
+
+ $ret[] = update_sql("UPDATE {node} SET vid = nid");
+ $ret[] = update_sql("UPDATE {forum} SET vid = nid");
+ $ret[] = update_sql("UPDATE {book} SET vid = nid");
+ $ret[] = update_sql("UPDATE {files} SET vid = nid");
+
+ $ret[] = update_sql("ALTER TABLE {book} ADD PRIMARY KEY vid (vid)");
+ $ret[] = update_sql("ALTER TABLE {forum} ADD PRIMARY KEY vid (vid)");
+ $ret[] = update_sql("ALTER TABLE {node_revisions} ADD PRIMARY KEY vid (vid)");
+ $ret[] = update_sql("ALTER TABLE {node_revisions} ADD KEY nid (nid)");
+ $ret[] = update_sql("ALTER TABLE {node_revisions} ADD KEY uid (uid)");
+
+ $ret[] = update_sql("CREATE TABLE {old_revisions} SELECT nid, type, revisions FROM {node} WHERE revisions != ''");
+
+ $ret[] = update_sql("ALTER TABLE {book} ADD KEY nid (nid)");
+ $ret[] = update_sql("ALTER TABLE {forum} ADD KEY nid (nid)");
+ $ret[] = update_sql("ALTER TABLE {files} ADD KEY fid (fid)");
+ $ret[] = update_sql("ALTER TABLE {files} ADD KEY vid (vid)");
+ $vid = db_next_id('{node}_nid');
+ $ret[] = update_sql("INSERT INTO {sequences} (name, id) VALUES ('{node_revisions}_vid', $vid)");
+ }
+ else { // pgsql
+ $ret[] = update_sql("CREATE TABLE {node_revisions} AS
+ SELECT nid, nid AS vid, uid, type, title, body, teaser, changed AS timestamp, format
+ FROM {node}");
+
+ $ret[] = update_sql("UPDATE {node} SET vid = nid");
+ $ret[] = update_sql("UPDATE {forum} SET vid = nid");
+ $ret[] = update_sql("UPDATE {book} SET vid = nid");
+ $ret[] = update_sql("UPDATE {files} SET vid = nid");
+
+ $ret[] = update_sql("CREATE TABLE {old_revisions} AS SELECT nid, type, revisions FROM {node} WHERE revisions != ''");
+ }
+
+ // Move logs too.
+ $result = db_query("SELECT nid, log FROM {book} WHERE log != ''");
+ while ($row = db_fetch_object($result)) {
+ db_query("UPDATE {node_revisions} SET log = '%s' WHERE vid = %d", $row->log, $row->nid);
+ }
+
+ if ($GLOBALS['db_type'] == 'mysql') {
+ $ret[] = update_sql("ALTER TABLE {book} DROP log");
+ $ret[] = update_sql("ALTER TABLE {node} DROP teaser");
+ $ret[] = update_sql("ALTER TABLE {node} DROP body");
+ $ret[] = update_sql("ALTER TABLE {node} DROP format");
+ $ret[] = update_sql("ALTER TABLE {node} DROP revisions");
+ }
+ else { // pgsql
+ }
+
+ return $ret;
+}
+
function update_sql($sql) {
$edit = $_POST["edit"];
$result = db_query($sql);