diff options
Diffstat (limited to 'database/updates.inc')
-rw-r--r-- | database/updates.inc | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/database/updates.inc b/database/updates.inc index 095176103..08741457d 100644 --- a/database/updates.inc +++ b/database/updates.inc @@ -1623,3 +1623,65 @@ function system_update_172() { } return array('#finished' => $_SESSION['system_update_172'] / $_SESSION['system_update_172_max']); } + +function system_update_173() { + $ret = array(); + + switch ($GLOBALS['db_type']) { + case 'pgsql': + // create file_revisions table + $ret[] = update_sql("CREATE TABLE {file_revisions} ( + fid integer NOT NULL default 0, + vid integer NOT NULL default 0, + description varchar(255) NOT NULL default '', + list smallint NOT NULL default 0, + PRIMARY KEY (fid, vid))"); + $ret[] = update_sql("INSERT INTO {file_revisions} SELECT fid, vid, description, list FROM {files}"); + + // alter files table + $ret[] = update_sql("CREATE TABLE {files_copy} AS SELECT * FROM {files}"); + $ret[] = update_sql("DROP TABLE {files}"); + $ret[] = update_sql("CREATE TABLE {files} ( + fid SERIAL, + nid integer NOT NULL default 0, + filename varchar(255) NOT NULL default '', + filepath varchar(255) NOT NULL default '', + filemime varchar(255) NOT NULL default '', + filesize integer NOT NULL default 0, + PRIMARY KEY (fid))"); + $ret[] = update_sql("INSERT INTO {files} SELECT DISTINCT ON (fid) fid, nid, filename, filepath, filemime, filesize FROM {files_copy}"); + $ret[] = update_sql("SELECT setval('{files}_fid_seq', max(fid)) FROM {files}"); + $ret[] = update_sql("DROP TABLE {files_copy}"); + break; + case 'mysqli': + case 'mysql': + // create file_revisions table + $ret[] = update_sql("CREATE TABLE {file_revisions} ( + fid int(10) unsigned NOT NULL default 0, + vid int(10) unsigned NOT NULL default 0, + description varchar(255) NOT NULL default '', + list tinyint(1) unsigned NOT NULL default 0, + PRIMARY KEY (fid, vid) + ) TYPE=MyISAM"); + $ret[] = update_sql('INSERT INTO {file_revisions} SELECT fid, vid, description, list FROM {files}'); + + // alter files table + $ret[] = update_sql("CREATE TABLE {files_copy} AS SELECT * FROM {files}"); + $ret[] = update_sql("DROP TABLE {files}"); + $ret[] = update_sql("CREATE TABLE {files} ( + fid int(10) unsigned NOT NULL default 0, + nid int(10) unsigned NOT NULL default 0, + filename varchar(255) NOT NULL default '', + filepath varchar(255) NOT NULL default '', + filemime varchar(255) NOT NULL default '', + filesize int(10) unsigned NOT NULL default 0, + PRIMARY KEY (fid) + ) TYPE=MyISAM + /*!40100 DEFAULT CHARACTER SET utf8 */"); + $ret[] = update_sql("INSERT IGNORE INTO {files} SELECT fid, nid, filename, filepath, filemime, filesize FROM {files_copy}"); + $ret[] = update_sql("DROP TABLE {files_copy}"); + break; + } + + return $ret; +} |