]> git.mxchange.org Git - friendica.git/blobdiff - update.php
Merge pull request #2190 from annando/1512-getload
[friendica.git] / update.php
index 04ae451a1ce34e57711ac6ea465e9deb8b55b38c..caa167617cd7abf9a2f9c3cf8808484c69880f54 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 
-define( 'UPDATE_VERSION' , 1159 );
+define( 'UPDATE_VERSION' , 1191 );
 
 /**
  *
@@ -10,29 +10,30 @@ define( 'UPDATE_VERSION' , 1159 );
  * copying the latest files from the source code repository will always perform a clean
  * and painless upgrade.
  *
- * Each function in this file is named update_nnnn() where nnnn is an increasing number 
+ * Each function in this file is named update_nnnn() where nnnn is an increasing number
  * which began counting at 1000.
- * 
+ *
  * At the top of the file "boot.php" is a define for DB_UPDATE_VERSION. Any time there is a change
  * to the database schema or one which requires an upgrade path from the existing application,
  * the DB_UPDATE_VERSION and the UPDATE_VERSION at the top of this file are incremented.
  *
  * The current DB_UPDATE_VERSION is stored in the config area of the database. If the application starts up
- * and DB_UPDATE_VERSION is greater than the last stored build number, we will process every update function 
- * in order from the currently stored value to the new DB_UPDATE_VERSION. This is expected to bring the system 
+ * and DB_UPDATE_VERSION is greater than the last stored build number, we will process every update function
+ * in order from the currently stored value to the new DB_UPDATE_VERSION. This is expected to bring the system
  * up to current without requiring re-installation or manual intervention.
  *
  * Once the upgrade functions have completed, the current DB_UPDATE_VERSION is stored as the current value.
- * The DB_UPDATE_VERSION will always be one greater than the last numbered script in this file. 
+ * The DB_UPDATE_VERSION will always be one greater than the last numbered script in this file.
  *
  * If you change the database schema, the following are required:
- *    1. Update the file database.sql to match the new schema.
- *    2. Update this file by adding a new function at the end with the number of the current DB_UPDATE_VERSION.
- *       This function should modify the current database schema and perform any other steps necessary
- *       to ensure that upgrade is silent and free from requiring interaction.
+ *    1. Update the file include/dbstructure.php to match the new schema.
+ *    2. If there is a need for a post procession, update this file by adding a new function at the end with the number of the current DB_UPDATE_VERSION.
+ *       This function should perform some post procession steps but no database updates.
  *    3. Increment the DB_UPDATE_VERSION in boot.php *AND* the UPDATE_VERSION in this file to match it
  *    4. TEST the upgrade prior to checkin and filing a pull request.
  *
+ * IMPORTANT!
+ * NEVER do a database change anymore in the update functions! Only do this in the file include/dbstructure.php!
  */
 
 
@@ -47,13 +48,13 @@ function update_1000() {
 
        q("ALTER TABLE `intro` ADD `duplex` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `knowyou` ");
        q("ALTER TABLE `contact` ADD `duplex` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `rel` ");
-       q("ALTER TABLE `contact` CHANGE `issued-pubkey` `issued-pubkey` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL");  
+       q("ALTER TABLE `contact` CHANGE `issued-pubkey` `issued-pubkey` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL");
        q("ALTER TABLE `contact` ADD `term-date` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' AFTER `avatar-date`");
 }
 
 function update_1001() {
        q("ALTER TABLE `item` ADD `wall` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `type` ");
-       q("ALTER TABLE `item` ADD INDEX ( `wall` )");  
+       q("ALTER TABLE `item` ADD INDEX ( `wall` )");
 }
 
 function update_1002() {
@@ -64,7 +65,7 @@ function update_1003() {
        q("ALTER TABLE `contact` DROP `issued-pubkey` , DROP `ret-id` , DROP `ret-pubkey` ");
        q("ALTER TABLE `contact` ADD `usehub` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `ret-aes`");
        q("ALTER TABLE `contact` ADD `hub-verify` CHAR( 255 ) NOT NULL AFTER `usehub`");
-       q("ALTER TABLE `contact` ADD INDEX ( `uid` ) ,  ADD INDEX ( `self` ),  ADD INDEX ( `issued-id` ),  ADD INDEX ( `dfrn-id` )"); 
+       q("ALTER TABLE `contact` ADD INDEX ( `uid` ) ,  ADD INDEX ( `self` ),  ADD INDEX ( `issued-id` ),  ADD INDEX ( `dfrn-id` )");
        q("ALTER TABLE `contact` ADD INDEX ( `blocked` ),   ADD INDEX ( `readonly` )");
 }
 
@@ -92,7 +93,7 @@ function update_1006() {
                        $spkey = openssl_pkey_get_details($sres);
                        $spubkey = $spkey["key"];
                        $r = q("UPDATE `user` SET `spubkey` = '%s', `sprvkey` = '%s'
-                               WHERE `uid` = %d LIMIT 1",
+                               WHERE `uid` = %d",
                                dbesc($spubkey),
                                dbesc($sprvkey),
                                intval($rr['uid'])
@@ -103,7 +104,7 @@ function update_1006() {
 
 function update_1007() {
        q("ALTER TABLE `user` ADD `page-flags` INT NOT NULL DEFAULT '0' AFTER `notify-flags`");
-       q("ALTER TABLE `user` ADD INDEX ( `nickname` )");  
+       q("ALTER TABLE `user` ADD INDEX ( `nickname` )");
 }
 
 function update_1008() {
@@ -123,7 +124,7 @@ function update_1011() {
        $r = q("SELECT * FROM `contact` WHERE 1");
        if(count($r)) {
                foreach($r as $rr) {
-                               q("UPDATE `contact` SET `nick` = '%s' WHERE `id` = %d LIMIT 1",
+                               q("UPDATE `contact` SET `nick` = '%s' WHERE `id` = %d",
                                        dbesc(basename($rr['url'])),
                                        intval($rr['id'])
                                );
@@ -136,9 +137,9 @@ function update_1012() {
 }
 
 function update_1013() {
-       q("ALTER TABLE `item` ADD `target-type` CHAR( 255 ) NOT NULL 
+       q("ALTER TABLE `item` ADD `target-type` CHAR( 255 ) NOT NULL
                AFTER `object` , ADD `target` TEXT NOT NULL AFTER `target-type`");
-} 
+}
 
 function update_1014() {
        require_once('include/Photo.php');
@@ -155,13 +156,13 @@ function update_1014() {
        }
        $r = q("SELECT * FROM `contact` WHERE 1");
        if(count($r)) {
-               foreach($r as $rr) {            
+               foreach($r as $rr) {
                        if(stristr($rr['thumb'],'avatar'))
-                               q("UPDATE `contact` SET `micro` = '%s' WHERE `id` = %d LIMIT 1",
+                               q("UPDATE `contact` SET `micro` = '%s' WHERE `id` = %d",
                                        dbesc(str_replace('avatar','micro',$rr['thumb'])),
                                        intval($rr['id']));
                        else
-                               q("UPDATE `contact` SET `micro` = '%s' WHERE `id` = %d LIMIT 1",
+                               q("UPDATE `contact` SET `micro` = '%s' WHERE `id` = %d",
                                        dbesc(str_replace('5.jpg','6.jpg',$rr['thumb'])),
                                        intval($rr['id']));
                }
@@ -268,7 +269,7 @@ function update_1027() {
        `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
        `name` CHAR( 255 ) NOT NULL ,
        `version` CHAR( 255 ) NOT NULL ,
-       `installed` TINYINT( 1 ) NOT NULL DEFAULT '0' 
+       `installed` TINYINT( 1 ) NOT NULL DEFAULT '0'
        ) ENGINE = MYISAM DEFAULT CHARSET=utf8 ");
 }
 
@@ -310,7 +311,7 @@ function update_1031() {
        if($r && count($r)) {
                foreach($r as $rr) {
                        if(strstr($rr['object'],'type=&quot;http')) {
-                               q("UPDATE `item` SET `object` = '%s' WHERE `id` = %d LIMIT 1",
+                               q("UPDATE `item` SET `object` = '%s' WHERE `id` = %d",
                                        dbesc(str_replace('type=&quot;http','href=&quot;http',$rr['object'])),
                                        intval($rr['id'])
                                );
@@ -318,7 +319,7 @@ function update_1031() {
                }
        }
 }
-       
+
 function update_1032() {
        q("ALTER TABLE `profile` ADD `pdesc` CHAR( 255 ) NOT NULL AFTER `name` ");
 }
@@ -334,11 +335,11 @@ function update_1033() {
 
 function update_1034() {
 
-       // If you have any of these parent-less posts they can cause problems, and 
+       // If you have any of these parent-less posts they can cause problems, and
        // we need to delete them. You can't see them anyway.
-       // Legitimate items will usually get re-created on the next 
+       // Legitimate items will usually get re-created on the next
        // pull from the hub.
-       // But don't get rid of a post that may have just come in 
+       // But don't get rid of a post that may have just come in
        // and may not yet have the parent id set.
 
        q("DELETE FROM `item` WHERE `parent` = 0 AND `created` < UTC_TIMESTAMP() - INTERVAL 2 MINUTE");
@@ -357,7 +358,7 @@ function update_1036() {
        $r = dbq("SELECT * FROM `contact` WHERE `network` = 'dfrn' && `photo` LIKE '%include/photo%' ");
        if(count($r)) {
                foreach($r as $rr) {
-                       q("UPDATE `contact` SET `photo` = '%s', `thumb` = '%s', `micro` = '%s' WHERE `id` = %d LIMIT 1",
+                       q("UPDATE `contact` SET `photo` = '%s', `thumb` = '%s', `micro` = '%s' WHERE `id` = %d",
                                dbesc(str_replace('include/photo','photo',$rr['photo'])),
                                dbesc(str_replace('include/photo','photo',$rr['thumb'])),
                                dbesc(str_replace('include/photo','photo',$rr['micro'])),
@@ -556,7 +557,7 @@ function update_1068() {
        `url` CHAR( 255 ) NOT NULL ,
        `photo` CHAR( 255 ) NOT NULL ,
        `note` TEXT NOT NULL ,
-       `created` DATETIME NOT NULL 
+       `created` DATETIME NOT NULL
        ) ENGINE = MYISAM DEFAULT CHARSET=utf8");
 
 }
@@ -595,7 +596,7 @@ function update_1074() {
        $r = q("SELECT `uid` FROM `profile` WHERE `is-default` = 1 AND `hidewall` = 1");
        if(count($r)) {
                foreach($r as $rr)
-                       q("UPDATE `user` SET `hidewall` = 1 WHERE `uid` = %d LIMIT 1",
+                       q("UPDATE `user` SET `hidewall` = 1 WHERE `uid` = %d",
                                intval($rr['uid'])
                        );
        }
@@ -617,7 +618,7 @@ function update_1075() {
                                        $found = false;
                        } while ($found == true );
 
-                       q("UPDATE `user` SET `guid` = '%s' WHERE `uid` = %d LIMIT 1",
+                       q("UPDATE `user` SET `guid` = '%s' WHERE `uid` = %d",
                                dbesc($guid),
                                intval($rr['uid'])
                        );
@@ -632,7 +633,7 @@ function update_1076() {
 }
 
 // There was a typo in 1076 so we'll try again in 1077 to make sure
-// We'll also make it big enough to allow for future growth, I seriously 
+// We'll also make it big enough to allow for future growth, I seriously
 // doubt Diaspora will be able to leave guids at 16 bytes,
 // and we can also use the same structure for our own larger guids
 
@@ -640,7 +641,7 @@ function update_1077() {
        q("CREATE TABLE IF NOT EXISTS `guid` ( `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
                `guid` CHAR( 16 ) NOT NULL , INDEX ( `guid` ) ) ENGINE = MYISAM ");
 
-       q("ALTER TABLE `guid` CHANGE `guid` `guid` CHAR( 64 ) NOT NULL"); 
+       q("ALTER TABLE `guid` CHANGE `guid` `guid` CHAR( 64 ) NOT NULL");
 }
 
 function update_1078() {
@@ -666,7 +667,7 @@ function update_1079() {
        ADD `network` CHAR( 32 ) NOT NULL ,
        ADD `alias` CHAR( 255 ) NOT NULL ,
        ADD `pubkey` TEXT NOT NULL ,
-       ADD INDEX ( `addr` ) , 
+       ADD INDEX ( `addr` ) ,
        ADD INDEX ( `network` ) ");
 
 }
@@ -736,7 +737,7 @@ function update_1087() {
                                intval($rr['id'])
                        );
                        if(count($x))
-                               q("UPDATE `item` SET `commented` = '%s' WHERE `id` = %d LIMIT 1",
+                               q("UPDATE `item` SET `commented` = '%s' WHERE `id` = %d",
                                        dbesc($x[0]['cdate']),
                                        intval($rr['id'])
                                );
@@ -801,24 +802,24 @@ function update_1096() {
 }
 
 function update_1097() {
-       q("ALTER TABLE `queue` 
-               ADD INDEX (`cid`), 
-               ADD INDEX (`created`), 
-               ADD INDEX (`last`), 
-               ADD INDEX (`network`), 
-               ADD INDEX (`batch`) 
+       q("ALTER TABLE `queue`
+               ADD INDEX (`cid`),
+               ADD INDEX (`created`),
+               ADD INDEX (`last`),
+               ADD INDEX (`network`),
+               ADD INDEX (`batch`)
        ");
 }
 
 function update_1098() {
-       q("ALTER TABLE `contact` 
-               ADD INDEX (`network`), 
-               ADD INDEX (`name`), 
-               ADD INDEX (`nick`), 
-               ADD INDEX (`attag`), 
+       q("ALTER TABLE `contact`
+               ADD INDEX (`network`),
+               ADD INDEX (`name`),
+               ADD INDEX (`nick`),
+               ADD INDEX (`attag`),
                ADD INDEX (`url`),
-               ADD INDEX (`addr`), 
-               ADD INDEX (`batch`) 
+               ADD INDEX (`addr`),
+               ADD INDEX (`batch`)
        ");
 }
 
@@ -842,7 +843,7 @@ function update_1099() {
        q("ALTER TABLE `gcontact` ADD INDEX (`nurl`) ");
        q("ALTER TABLE `glink` ADD INDEX (`cid`), ADD INDEX (`uid`), ADD INDEX (`gcid`), ADD INDEX (`updated`) ");
 
-       q("ALTER TABLE `contact` ADD `poco` TEXT NOT NULL AFTER `confirm` "); 
+       q("ALTER TABLE `contact` ADD `poco` TEXT NOT NULL AFTER `confirm` ");
 
 }
 
@@ -855,10 +856,10 @@ function update_1100() {
        $r = q("select id, url from contact where url != '' and nurl = '' ");
        if(count($r)) {
                foreach($r as $rr) {
-                       q("update contact set nurl = '%s' where id = %d limit 1",
+                       q("update contact set nurl = '%s' where id = %d",
                                dbesc(normalise_link($rr['url'])),
                                intval($rr['id'])
-                       ); 
+                       );
                }
        }
 }
@@ -875,18 +876,18 @@ function update_1101() {
 }
 
 function update_1102() {
-       q("ALTER TABLE `clients` ADD `name` TEXT NULL DEFAULT NULL AFTER `redirect_uri` "); 
-       q("ALTER TABLE `clients` ADD `icon` TEXT NULL DEFAULT NULL AFTER `name` "); 
-       q("ALTER TABLE `clients` ADD `uid` INT NOT NULL DEFAULT 0 AFTER `icon` "); 
+       q("ALTER TABLE `clients` ADD `name` TEXT NULL DEFAULT NULL AFTER `redirect_uri` ");
+       q("ALTER TABLE `clients` ADD `icon` TEXT NULL DEFAULT NULL AFTER `name` ");
+       q("ALTER TABLE `clients` ADD `uid` INT NOT NULL DEFAULT 0 AFTER `icon` ");
 
-       q("ALTER TABLE `tokens` ADD `secret` TEXT NOT NULL AFTER `id` "); 
-       q("ALTER TABLE `tokens` ADD `uid` INT NOT NULL AFTER `scope` "); 
+       q("ALTER TABLE `tokens` ADD `secret` TEXT NOT NULL AFTER `id` ");
+       q("ALTER TABLE `tokens` ADD `uid` INT NOT NULL AFTER `scope` ");
 }
 
 
 function update_1103() {
 //     q("ALTER TABLE `item` ADD INDEX ( `wall` ) ");
-       q("ALTER TABLE `item` ADD FULLTEXT ( `tag` ) "); 
+       q("ALTER TABLE `item` ADD FULLTEXT ( `tag` ) ");
        q("ALTER TABLE `contact` ADD INDEX ( `pending` ) ");
        q("ALTER TABLE `user` ADD INDEX ( `hidewall` ) ");
        q("ALTER TABLE `user` ADD INDEX ( `blockwall` ) ");
@@ -923,7 +924,7 @@ function update_1107() {
 
 }
 
-function update_1108() { 
+function update_1108() {
        q("ALTER TABLE `contact` ADD `hidden` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `writable` ,
 ADD INDEX ( `hidden` ) ");
 
@@ -992,8 +993,8 @@ INDEX ( `stat` )
 }
 
 function update_1115() {
-       q("ALTER TABLE `item` ADD `moderated` 
-               TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `pubmail`, 
+       q("ALTER TABLE `item` ADD `moderated`
+               TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `pubmail`,
                ADD INDEX (`moderated`) ");
 }
 
@@ -1148,16 +1149,16 @@ function update_1134() {
 }
 
 function update_1135() {
-       //there can't be indexes with more than 1000 bytes in mysql, 
+       //there can't be indexes with more than 1000 bytes in mysql,
        //so change charset to be smaller
        q("ALTER TABLE `config` CHANGE `cat` `cat` CHAR( 255 ) CHARACTER SET ascii COLLATE ascii_general_ci NOT NULL ,
-CHANGE `k` `k` CHAR( 255 ) CHARACTER SET ascii COLLATE ascii_general_ci NOT NULL"); 
-       
+CHANGE `k` `k` CHAR( 255 ) CHARACTER SET ascii COLLATE ascii_general_ci NOT NULL");
+
        //same thing for pconfig
        q("ALTER TABLE `pconfig` CHANGE `cat` `cat` CHAR( 255 ) CHARACTER SET ascii COLLATE ascii_general_ci NOT NULL ,
-       CHANGE `k` `k` CHAR( 255 ) CHARACTER SET ascii COLLATE ascii_general_ci NOT NULL"); 
+       CHANGE `k` `k` CHAR( 255 ) CHARACTER SET ascii COLLATE ascii_general_ci NOT NULL");
        // faulty update merged forward. Bad update in 1134 caused duplicate k,cat pairs
-       // these have to be cleared before the unique keys can be added.        
+       // these have to be cleared before the unique keys can be added.
 }
 
 function update_1136() {
@@ -1173,7 +1174,7 @@ function update_1136() {
                        foreach($arr as $x) {
                                if($x['cat'] == $rr['cat'] && $x['k'] == $rr['k']) {
                                        $found = true;
-                                       q("delete from config where id = %d limit 1",
+                                       q("delete from config where id = %d",
                                                intval($rr['id'])
                                        );
                                }
@@ -1183,7 +1184,7 @@ function update_1136() {
                        }
                }
        }
-                       
+
        $arr = array();
        $r = q("select * from pconfig where 1 order by id desc");
        if(count($r)) {
@@ -1192,7 +1193,7 @@ function update_1136() {
                        foreach($arr as $x) {
                                if($x['uid'] == $rr['uid'] && $x['cat'] == $rr['cat'] && $x['k'] == $rr['k']) {
                                        $found = true;
-                                       q("delete from pconfig where id = %d limit 1",
+                                       q("delete from pconfig where id = %d",
                                                intval($rr['id'])
                                        );
                                }
@@ -1202,8 +1203,8 @@ function update_1136() {
                        }
                }
        }
-       q("ALTER TABLE `config` ADD UNIQUE `access` ( `cat` , `k` ) "); 
-       q("ALTER TABLE `pconfig` ADD UNIQUE `access` ( `uid` , `cat` , `k` )"); 
+       q("ALTER TABLE `config` ADD UNIQUE `access` ( `cat` , `k` ) ");
+       q("ALTER TABLE `pconfig` ADD UNIQUE `access` ( `uid` , `cat` , `k` )");
 
 }
 
@@ -1277,7 +1278,7 @@ function update_1146() {
 function update_1147() {
        $r1 = q("ALTER TABLE `sign` ALTER `iid` SET DEFAULT '0'");
        $r2 = q("ALTER TABLE `sign` ADD `retract_iid` INT(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `iid`");
-       $r3 = q("ALTER TABLE `sign` ADD INDEX ( `retract_iid` )");  
+       $r3 = q("ALTER TABLE `sign` ADD INDEX ( `retract_iid` )");
        if((! $r1) || (! $r2) || (! $r3))
                return UPDATE_FAILED ;
        return UPDATE_SUCCESS ;
@@ -1326,7 +1327,7 @@ function update_1152() {
                `otype` TINYINT( 3 ) UNSIGNED NOT NULL ,
                `type` TINYINT( 3 ) UNSIGNED NOT NULL ,
                `term` CHAR( 255 ) NOT NULL ,
-               `url` CHAR( 255 ) NOT NULL, 
+               `url` CHAR( 255 ) NOT NULL,
                KEY `oid` ( `oid` ),
                KEY `otype` ( `otype` ),
                KEY `type`  ( `type` ),
@@ -1339,7 +1340,7 @@ function update_1152() {
 
 function update_1153() {
        $r = q("ALTER TABLE `hook` ADD `priority` INT(11) UNSIGNED NOT NULL DEFAULT '0'");
-       
+
        if(!$r) return UPDATE_FAILED;
        return UPDATE_SUCCESS;
 }
@@ -1371,20 +1372,354 @@ ADD INDEX ( `datasize` ) ");
 }
 
 function update_1157() {
-       $r = q("CREATE TABLE IF NOT EXISTS `tag` (
-  `iid` int(11) NOT NULL,
-  `tag` char(255) NOT NULL,
-  `link` char(255) NOT NULL,
-  PRIMARY KEY (`iid`, `tag`),
-  KEY `tag` (`tag`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;");
+       $r = q("CREATE TABLE  IF NOT EXISTS `dsprphotoq` (
+         `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+         `uid` int(11) NOT NULL,
+         `msg` mediumtext NOT NULL,
+         `attempt` tinyint(4) NOT NULL,
+         PRIMARY KEY (`id`)
+         ) ENGINE=MyISAM DEFAULT CHARSET=utf8"
+       );
 
-       if(!$r) return UPDATE_FAILED;
-       return UPDATE_SUCCESS;
+       if($r)
+               return UPDATE_SUCCESS;
 }
+
 function update_1158() {
+       set_config('system', 'maintenance', 1);
+
+       // Wait for 15 seconds for current requests to
+       // clear before locking up the database
+       sleep(15);
+
+       $r = q("CREATE INDEX event_id ON item(`event-id`)");
+       set_config('system', 'maintenance', 0);
+
+       if($r)
+               return UPDATE_SUCCESS;
+
+       return UPDATE_FAILED;
+}
+
+function update_1159() {
+       $r = q("ALTER TABLE `term` ADD `aid` int(10) unsigned NOT NULL DEFAULT '0',
+               ADD `uid` int(10) unsigned NOT NULL DEFAULT '0',
+               ADD INDEX (`uid`),
+               ADD INDEX (`aid`)");
+
+       if(!$r)
+               return UPDATE_FAILED;
+
+       return UPDATE_SUCCESS;
+}
+
+function update_1160() {
+       set_config('system', 'maintenance', 1);
+
+       // Wait for 15 seconds for current requests to
+       // clear before locking up the database
+       sleep(15);
+
        $r = q("ALTER TABLE `item` ADD `mention` TINYINT(1) NOT NULL DEFAULT '0', ADD INDEX (`mention`)");
-// KEY `mention` (`mention`)
-       if(!$r) return UPDATE_FAILED;
+       set_config('system', 'maintenance', 0);
+
+       if(!$r)
+               return UPDATE_FAILED;
+
+       return UPDATE_SUCCESS;
+}
+
+function update_1161() {
+       $r = q("ALTER TABLE `pconfig` ADD INDEX (`cat`)");
+
+       if(!$r)
+               return UPDATE_FAILED;
+
+       return UPDATE_SUCCESS;
+}
+
+function update_1162() {
+       require_once('include/tags.php');
+       update_items();
+
+       return UPDATE_SUCCESS;
+}
+
+function update_1163() {
+       set_config('system', 'maintenance', 1);
+
+       $r = q("ALTER TABLE `item` ADD `network` char(32) NOT NULL");
+
+       set_config('system', 'maintenance', 0);
+       if(!$r)
+               return UPDATE_FAILED;
+
        return UPDATE_SUCCESS;
 }
+function update_1164() {
+       set_config('system', 'maintenance', 1);
+
+       $r = q("UPDATE `item` SET `network`='%s' WHERE `contact-id` IN (SELECT `id` FROM`contact` WHERE `network` = '' AND `contact`.`uid` = `item`.`uid`)",
+               NETWORK_DFRN);
+
+       $r = q("UPDATE `item` SET `network`='%s' WHERE `contact-id` IN (SELECT `id` FROM`contact` WHERE `network` = '%s' AND `contact`.`uid` = `item`.`uid`)",
+               NETWORK_DFRN, NETWORK_DFRN);
+
+       $r = q("UPDATE `item` SET `network`='%s' WHERE `contact-id` IN (SELECT `id` FROM`contact` WHERE `network` = '%s' AND `contact`.`uid` = `item`.`uid`)",
+               NETWORK_ZOT, NETWORK_ZOT);
+
+       $r = q("UPDATE `item` SET `network`='%s' WHERE `contact-id` IN (SELECT `id` FROM`contact` WHERE `network` = '%s' AND `contact`.`uid` = `item`.`uid`)",
+               NETWORK_OSTATUS, NETWORK_OSTATUS);
+
+       $r = q("UPDATE `item` SET `network`='%s' WHERE `contact-id` IN (SELECT `id` FROM`contact` WHERE `network` = '%s' AND `contact`.`uid` = `item`.`uid`)",
+               NETWORK_FEED, NETWORK_FEED);
+
+       $r = q("UPDATE `item` SET `network`='%s' WHERE `contact-id` IN (SELECT `id` FROM`contact` WHERE `network` = '%s' AND `contact`.`uid` = `item`.`uid`)",
+               NETWORK_DIASPORA, NETWORK_DIASPORA);
+
+       $r = q("UPDATE `item` SET `network`='%s' WHERE `contact-id` IN (SELECT `id` FROM`contact` WHERE `network` = '%s' AND `contact`.`uid` = `item`.`uid`)",
+               NETWORK_MAIL, NETWORK_MAIL);
+
+       $r = q("UPDATE `item` SET `network`='%s' WHERE `contact-id` IN (SELECT `id` FROM`contact` WHERE `network` = '%s' AND `contact`.`uid` = `item`.`uid`)",
+               NETWORK_MAIL2, NETWORK_MAIL2);
+
+       $r = q("UPDATE `item` SET `network`='%s' WHERE `contact-id` IN (SELECT `id` FROM`contact` WHERE `network` = '%s' AND `contact`.`uid` = `item`.`uid`)",
+               NETWORK_FACEBOOK, NETWORK_FACEBOOK);
+
+       $r = q("UPDATE `item` SET `network`='%s' WHERE `contact-id` IN (SELECT `id` FROM`contact` WHERE `network` = '%s' AND `contact`.`uid` = `item`.`uid`)",
+               NETWORK_LINKEDIN, NETWORK_LINKEDIN);
+
+       $r = q("UPDATE `item` SET `network`='%s' WHERE `contact-id` IN (SELECT `id` FROM`contact` WHERE `network` = '%s' AND `contact`.`uid` = `item`.`uid`)",
+               NETWORK_XMPP, NETWORK_XMPP);
+
+       $r = q("UPDATE `item` SET `network`='%s' WHERE `contact-id` IN (SELECT `id` FROM`contact` WHERE `network` = '%s' AND `contact`.`uid` = `item`.`uid`)",
+               NETWORK_MYSPACE, NETWORK_MYSPACE);
+
+       $r = q("UPDATE `item` SET `network`='%s' WHERE `contact-id` IN (SELECT `id` FROM`contact` WHERE `network` = '%s' AND `contact`.`uid` = `item`.`uid`)",
+               NETWORK_GPLUS, NETWORK_GPLUS);
+
+       $r = q("UPDATE `item` SET `network`='%s' WHERE `contact-id` IN (SELECT `id` FROM`contact` WHERE `network` = '%s' AND `contact`.`uid` = `item`.`uid`)",
+               NETWORK_PUMPIO, NETWORK_PUMPIO);
+
+       $r = q("UPDATE `item` SET `network`='%s' WHERE `contact-id` IN (SELECT `id` FROM`contact` WHERE `network` = '%s' AND `contact`.`uid` = `item`.`uid`)",
+               NETWORK_TWITTER, NETWORK_TWITTER);
+
+       set_config('system', 'maintenance', 0);
+
+       return UPDATE_SUCCESS;
+}
+
+function update_1165() {
+       $r = q("CREATE TABLE IF NOT EXISTS `push_subscriber` (
+                       `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
+                   `uid` INT NOT NULL,
+               `callback_url` CHAR( 255 ) NOT NULL,
+            `topic` CHAR( 255 ) NOT NULL,
+            `nickname` CHAR( 255 ) NOT NULL,
+            `push` INT NOT NULL,
+            `last_update` DATETIME NOT NULL,
+            `secret` CHAR( 255 ) NOT NULL
+                 ) ENGINE = MYISAM DEFAULT CHARSET=utf8 ");
+       if (!$r)
+               return UPDATE_FAILED;
+
+       return UPDATE_SUCCESS;
+}
+
+function update_1166() {
+       $r = q("CREATE TABLE IF NOT EXISTS `unique_contacts` (
+                       `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
+                       `url` CHAR(255) NOT NULL,
+                       `nick` CHAR(255) NOT NULL,
+                       `name` CHAR(255) NOT NULL,
+                       `avatar` CHAR(255) NOT NULL,
+                       INDEX (`url`)
+                 ) ENGINE = MYISAM DEFAULT CHARSET=utf8 ");
+       if (!$r)
+               return UPDATE_FAILED;
+
+       return UPDATE_SUCCESS;
+}
+
+function update_1167() {
+       $r = q("ALTER TABLE `contact` ADD `notify_new_posts` TINYINT(1) NOT NULL DEFAULT '0'");
+       if (!$r)
+               return UPDATE_FAILED;
+
+       return UPDATE_SUCCESS;
+}
+
+function update_1168() {
+       $r = q("ALTER TABLE `contact` ADD `fetch_further_information` TINYINT(1) NOT NULL DEFAULT '0'");
+       if (!$r)
+               return UPDATE_FAILED;
+
+       return UPDATE_SUCCESS;
+}
+
+function update_1169() {
+       $r = q("CREATE TABLE IF NOT EXISTS `thread` (
+                 `iid` int(10) unsigned NOT NULL DEFAULT '0',
+                 `uid` int(10) unsigned NOT NULL DEFAULT '0',
+                 `contact-id` int(11) unsigned NOT NULL DEFAULT '0',
+                 `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+                 `edited` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+                 `commented` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+                 `received` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+                 `changed` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+                 `wall` tinyint(1) NOT NULL DEFAULT '0',
+                 `private` tinyint(1) NOT NULL DEFAULT '0',
+                 `pubmail` tinyint(1) NOT NULL DEFAULT '0',
+                 `moderated` tinyint(1) NOT NULL DEFAULT '0',
+                 `visible` tinyint(1) NOT NULL DEFAULT '0',
+                 `spam` tinyint(1) NOT NULL DEFAULT '0',
+                 `starred` tinyint(1) NOT NULL DEFAULT '0',
+                 `bookmark` tinyint(1) NOT NULL DEFAULT '0',
+                 `unseen` tinyint(1) NOT NULL DEFAULT '1',
+                 `deleted` tinyint(1) NOT NULL DEFAULT '0',
+                 `origin` tinyint(1) NOT NULL DEFAULT '0',
+                 `forum_mode` tinyint(1) NOT NULL DEFAULT '0',
+                 `mention` tinyint(1) NOT NULL DEFAULT '0',
+                 `network` char(32) NOT NULL,
+                 PRIMARY KEY (`iid`),
+                 KEY `created` (`created`),
+                 KEY `commented` (`commented`),
+                 KEY `uid_network_commented` (`uid`,`network`,`commented`),
+                 KEY `uid_network_created` (`uid`,`network`,`created`),
+                 KEY `uid_contactid_commented` (`uid`,`contact-id`,`commented`),
+                 KEY `uid_contactid_created` (`uid`,`contact-id`,`created`),
+                 KEY `wall_private_received` (`wall`,`private`,`received`),
+                 KEY `uid_created` (`uid`,`created`),
+                 KEY `uid_commented` (`uid`,`commented`)
+               ) ENGINE=MyISAM  DEFAULT CHARSET=utf8;");
+       if (!$r)
+               return UPDATE_FAILED;
+
+       proc_run('php',"include/threadupdate.php");
+
+       return UPDATE_SUCCESS;
+}
+
+/*
+==========
+ATTENTION!
+==========
+
+All following update functions are ONLY for jobs that need to run AFTER the database changes are applied.
+
+Database changes are ONLY applied in the file include/dbstructure.php.
+*/
+
+function update_1177() {
+       require_once("mod/profiles.php");
+
+       $profiles = q("SELECT `uid`, `about`, `locality`, `pub_keywords`, `gender` FROM `profile` WHERE `is-default`");
+
+       foreach ($profiles AS $profile) {
+               if ($profile["about"].$profile["locality"].$profile["pub_keywords"].$profile["gender"] == "")
+                       continue;
+
+               $profile["pub_keywords"] = profile_clean_keywords($profile["pub_keywords"]);
+
+               $r = q("UPDATE `contact` SET `about` = '%s', `location` = '%s', `keywords` = '%s', `gender` = '%s' WHERE `self` AND `uid` = %d",
+                               dbesc($profile["about"]),
+                               dbesc($profile["locality"]),
+                               dbesc($profile["pub_keywords"]),
+                               dbesc($profile["gender"]),
+                               intval($profile["uid"])
+                       );
+       }
+}
+
+function update_1178() {
+       if (get_config('system','no_community_page'))
+               set_config('system','community_page_style', CP_NO_COMMUNITY_PAGE);
+
+       // Update the central item storage with uid=0
+       proc_run('php',"include/threadupdate.php");
+
+       return UPDATE_SUCCESS;
+}
+
+function update_1180() {
+
+       // Fill the new fields in the term table.
+       proc_run('php',"include/tagupdate.php");
+
+       return UPDATE_SUCCESS;
+}
+
+function update_1188() {
+
+       if (strlen(get_config('system','directory_submit_url')) AND
+               !strlen(get_config('system','directory'))) {
+               set_config('system','directory', dirname(get_config('system','directory_submit_url')));
+               del_config('system','directory_submit_url');
+       }
+
+       return UPDATE_SUCCESS;
+}
+
+function update_1190() {
+
+       require_once('include/plugin.php');
+
+       set_config('system', 'maintenance', 1);
+
+       if (plugin_enabled('forumlist')) {
+               $plugin = 'forumlist';
+               $plugins = get_config('system','addon');
+               $plugins_arr = array();
+
+               if($plugins) {
+                       $plugins_arr = explode(",",str_replace(" ", "",$plugins));
+
+                       $idx = array_search($plugin, $plugins_arr);
+                       if ($idx !== false){
+                               unset($plugins_arr[$idx]);
+                               //delete forumlist manually from addon and hook table 
+                               // since uninstall_plugin() don't work here
+                               q("DELETE FROM `addon` WHERE `name` = 'forumlist' ");
+                               q("DELETE FROM `hook` WHERE `file` = 'addon/forumlist/forumlist.php' ");
+                               set_config('system','addon', implode(", ",$plugins_arr));
+                       }
+               }
+       }
+
+       // select old formlist addon entries
+       $r = q("SELECT `uid`, `cat`, `k`, `v` FROM `pconfig` WHERE `cat` = '%s' ",
+               dbesc('forumlist')
+       );
+
+       // convert old forumlist addon entries in new config entries
+       if (count($r)) {
+               foreach ($r as $rr) {
+                       $uid = $rr['uid'];
+                       $family = $rr['cat'];
+                       $key = $rr['k'];
+                       $value = $rr['v'];
+
+                       if ($key === 'randomise')
+                               del_pconfig($uid,$family,$key);
+
+                       if ($key === 'show_on_profile') {
+                               if ($value)
+                                       set_pconfig($uid,feature,forumlist_profile,$value);
+
+                               del_pconfig($uid,$family,$key);
+                       }
+
+                       if ($key === 'show_on_network') {
+                               if ($value)
+                                       set_pconfig($uid,feature,forumlist_widget,$value);
+
+                               del_pconfig($uid,$family,$key);
+                       }
+               }
+       }
+
+       set_config('system', 'maintenance', 0);
+
+       return UPDATE_SUCCESS;
+
+}