2010-09-09 05:14:17 +02:00
< ? php
2016-04-03 13:48:31 +02:00
define ( 'UPDATE_VERSION' , 1195 );
2011-06-03 10:16:17 +02:00
2010-12-10 05:41:42 +01:00
/**
*
* update . php - automatic system update
*
* Automatically update database schemas and any other development changes such that
* copying the latest files from the source code repository will always perform a clean
* and painless upgrade .
*
2014-06-04 00:44:58 +02:00
* Each function in this file is named update_nnnn () where nnnn is an increasing number
2010-12-10 05:41:42 +01:00
* which began counting at 1000.
2014-06-04 00:44:58 +02:00
*
2011-03-10 01:57:22 +01:00
* At the top of the file " boot.php " is a define for DB_UPDATE_VERSION . Any time there is a change
2010-12-10 05:41:42 +01:00
* to the database schema or one which requires an upgrade path from the existing application ,
2011-06-29 08:20:58 +02:00
* the DB_UPDATE_VERSION and the UPDATE_VERSION at the top of this file are incremented .
2010-12-10 05:41:42 +01:00
*
2011-03-10 01:57:22 +01:00
* The current DB_UPDATE_VERSION is stored in the config area of the database . If the application starts up
2014-06-04 00:44:58 +02:00
* 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
2010-12-10 05:41:42 +01:00
* up to current without requiring re - installation or manual intervention .
*
2011-03-10 01:57:22 +01:00
* Once the upgrade functions have completed , the current DB_UPDATE_VERSION is stored as the current value .
2014-06-04 00:44:58 +02:00
* The DB_UPDATE_VERSION will always be one greater than the last numbered script in this file .
2010-12-10 05:41:42 +01:00
*
* If you change the database schema , the following are required :
2014-06-04 00:44:58 +02:00
* 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 .
2011-06-03 10:16:17 +02:00
* 3. Increment the DB_UPDATE_VERSION in boot . php * AND * the UPDATE_VERSION in this file to match it
2010-12-10 05:41:42 +01:00
* 4. TEST the upgrade prior to checkin and filing a pull request .
*
2014-09-04 02:29:12 +02:00
* IMPORTANT !
* NEVER do a database change anymore in the update functions ! Only do this in the file include / dbstructure . php !
2010-12-10 05:41:42 +01:00
*/
2010-09-10 03:49:19 +02:00
function update_1000 () {
2010-09-09 05:14:17 +02:00
q ( " ALTER TABLE `item` DROP `like`, DROP `dislike` " );
q ( " ALTER TABLE `item` ADD `verb` CHAR( 255 ) NOT NULL AFTER `body` ,
ADD `object-type` CHAR ( 255 ) NOT NULL AFTER `verb` ,
ADD `object` TEXT NOT NULL AFTER `object-type` " );
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` " );
2014-09-07 17:28:38 +02:00
q ( " ALTER TABLE `contact` CHANGE `issued-pubkey` `issued-pubkey` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL " );
2010-09-09 05:14:17 +02:00
q ( " ALTER TABLE `contact` ADD `term-date` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' AFTER `avatar-date` " );
2010-09-10 03:49:19 +02:00
}
function update_1001 () {
q ( " ALTER TABLE `item` ADD `wall` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `type` " );
2014-09-07 17:28:38 +02:00
q ( " ALTER TABLE `item` ADD INDEX ( `wall` ) " );
2010-09-10 03:49:19 +02:00
}
2010-09-10 07:02:28 +02:00
function update_1002 () {
q ( " ALTER TABLE `item` ADD `gravity` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `wall` " );
}
2010-10-01 04:41:22 +02:00
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` " );
2014-09-07 17:28:38 +02:00
q ( " ALTER TABLE `contact` ADD INDEX ( `uid` ) , ADD INDEX ( `self` ), ADD INDEX ( `issued-id` ), ADD INDEX ( `dfrn-id` ) " );
2010-10-01 04:41:22 +02:00
q ( " ALTER TABLE `contact` ADD INDEX ( `blocked` ), ADD INDEX ( `readonly` ) " );
2010-10-01 06:00:06 +02:00
}
function update_1004 () {
q ( " ALTER TABLE `contact` ADD `subhub` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `usehub` " );
2010-10-12 08:22:38 +02:00
}
function update_1005 () {
q ( " ALTER TABLE `user` ADD `spubkey` TEXT NOT NULL AFTER `prvkey` ,
ADD `sprvkey` TEXT NOT NULL AFTER `spubkey` " );
2010-10-12 10:14:50 +02:00
}
function update_1006 () {
// create 's' keys for everybody that does not have one
$r = q ( " SELECT * FROM `user` WHERE `spubkey` = '' " );
if ( count ( $r )) {
foreach ( $r as $rr ) {
$sres = openssl_pkey_new ( array ( 'encrypt_key' => false ));
$sprvkey = '' ;
openssl_pkey_export ( $sres , $sprvkey );
$spkey = openssl_pkey_get_details ( $sres );
$spubkey = $spkey [ " key " ];
$r = q ( " UPDATE `user` SET `spubkey` = '%s', `sprvkey` = '%s'
2014-03-11 23:52:32 +01:00
WHERE `uid` = % d " ,
2010-10-12 10:14:50 +02:00
dbesc ( $spubkey ),
dbesc ( $sprvkey ),
intval ( $rr [ 'uid' ])
);
}
}
}
2010-10-17 07:11:21 +02:00
function update_1007 () {
q ( " ALTER TABLE `user` ADD `page-flags` INT NOT NULL DEFAULT '0' AFTER `notify-flags` " );
2014-09-07 17:28:38 +02:00
q ( " ALTER TABLE `user` ADD INDEX ( `nickname` ) " );
2010-10-20 02:15:00 +02:00
}
function update_1008 () {
q ( " ALTER TABLE `profile` ADD `with` TEXT NOT NULL AFTER `marital` " );
2010-10-20 02:30:15 +02:00
}
function update_1009 () {
2010-10-20 02:33:22 +02:00
q ( " ALTER TABLE `user` ADD `allow_location` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `default-location` " );
2010-10-21 13:53:43 +02:00
}
function update_1010 () {
q ( " ALTER TABLE `contact` ADD `lrdd` CHAR( 255 ) NOT NULL AFTER `url` " );
}
2010-10-23 10:20:26 +02:00
function update_1011 () {
q ( " ALTER TABLE `contact` ADD `nick` CHAR( 255 ) NOT NULL AFTER `name` " );
$r = q ( " SELECT * FROM `contact` WHERE 1 " );
if ( count ( $r )) {
foreach ( $r as $rr ) {
2014-03-11 23:52:32 +01:00
q ( " UPDATE `contact` SET `nick` = '%s' WHERE `id` = %d " ,
2010-10-23 10:20:26 +02:00
dbesc ( basename ( $rr [ 'url' ])),
intval ( $rr [ 'id' ])
);
}
}
2010-11-01 04:36:59 +01:00
}
function update_1012 () {
q ( " ALTER TABLE `item` ADD `inform` MEDIUMTEXT NOT NULL AFTER `tag` " );
2010-11-04 00:48:21 +01:00
}
function update_1013 () {
2014-09-07 17:28:38 +02:00
q ( " ALTER TABLE `item` ADD `target-type` CHAR( 255 ) NOT NULL
2010-11-04 00:48:21 +01:00
AFTER `object` , ADD `target` TEXT NOT NULL AFTER `target-type` " );
2014-09-07 17:28:38 +02:00
}
2010-11-05 07:50:32 +01:00
function update_1014 () {
require_once ( 'include/Photo.php' );
q ( " ALTER TABLE `contact` ADD `micro` TEXT NOT NULL AFTER `thumb` " );
$r = q ( " SELECT * FROM `photo` WHERE `scale` = 4 " );
if ( count ( $r )) {
foreach ( $r as $rr ) {
$ph = new Photo ( $rr [ 'data' ]);
if ( $ph -> is_valid ()) {
$ph -> scaleImage ( 48 );
$ph -> store ( $rr [ 'uid' ], $rr [ 'contact-id' ], $rr [ 'resource-id' ], $rr [ 'filename' ], $rr [ 'album' ], 6 ,(( $rr [ 'profile' ]) ? 1 : 0 ));
}
}
}
$r = q ( " SELECT * FROM `contact` WHERE 1 " );
if ( count ( $r )) {
2014-09-07 17:28:38 +02:00
foreach ( $r as $rr ) {
2010-11-05 07:50:32 +01:00
if ( stristr ( $rr [ 'thumb' ], 'avatar' ))
2014-03-11 23:52:32 +01:00
q ( " UPDATE `contact` SET `micro` = '%s' WHERE `id` = %d " ,
2010-11-05 07:50:32 +01:00
dbesc ( str_replace ( 'avatar' , 'micro' , $rr [ 'thumb' ])),
intval ( $rr [ 'id' ]));
else
2014-03-11 23:52:32 +01:00
q ( " UPDATE `contact` SET `micro` = '%s' WHERE `id` = %d " ,
2010-11-05 07:50:32 +01:00
dbesc ( str_replace ( '5.jpg' , '6.jpg' , $rr [ 'thumb' ])),
intval ( $rr [ 'id' ]));
}
}
2010-11-07 12:16:58 +01:00
}
function update_1015 () {
q ( " ALTER TABLE `item` CHANGE `body` `body` mediumtext NOT NULL " );
2010-11-15 00:17:27 +01:00
}
function update_1016 () {
q ( " ALTER TABLE `user` ADD `openid` CHAR( 255 ) NOT NULL AFTER `email` " );
}
2010-11-22 04:10:23 +01:00
function update_1017 () {
q ( " CREATE TABLE IF NOT EXISTS `clients` (
`client_id` VARCHAR ( 20 ) NOT NULL ,
`pw` VARCHAR ( 20 ) NOT NULL ,
`redirect_uri` VARCHAR ( 200 ) NOT NULL ,
PRIMARY KEY ( `client_id` )
) ENGINE = MYISAM DEFAULT CHARSET = utf8 " );
q ( " CREATE TABLE IF NOT EXISTS `tokens` (
`id` VARCHAR ( 40 ) NOT NULL ,
`client_id` VARCHAR ( 20 ) NOT NULL ,
`expires` INT NOT NULL ,
`scope` VARCHAR ( 200 ) NOT NULL ,
PRIMARY KEY ( `id` )
) ENGINE = MYISAM DEFAULT CHARSET = utf8 " );
q ( " CREATE TABLE IF NOT EXISTS `auth_codes` (
`id` VARCHAR ( 40 ) NOT NULL ,
`client_id` VARCHAR ( 20 ) NOT NULL ,
`redirect_uri` VARCHAR ( 200 ) NOT NULL ,
`expires` INT NOT NULL ,
`scope` VARCHAR ( 250 ) NOT NULL ,
PRIMARY KEY ( `id` )
) ENGINE = MYISAM DEFAULT CHARSET = utf8 " );
}
2010-11-22 08:00:01 +01:00
function update_1018 () {
q ( " CREATE TABLE IF NOT EXISTS `queue` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`cid` INT NOT NULL ,
`created` DATETIME NOT NULL ,
`last` DATETIME NOT NULL ,
`content` MEDIUMTEXT NOT NULL
) ENGINE = MYISAM DEFAULT CHARSET = utf8 " );
}
2010-11-24 01:08:48 +01:00
function update_1019 () {
q ( " ALTER TABLE `mail` DROP `delivered` " );
2010-12-03 08:04:28 +01:00
q ( " ALTER TABLE `profile` ADD `showwith` TINYINT(1) NOT NULL DEFAULT '0' AFTER `marital` " );
}
2010-12-05 08:16:16 +01:00
function update_1020 () {
q ( " ALTER TABLE `profile` DROP `showwith` " );
q ( " ALTER TABLE `item` ADD `thr-parent` CHAR( 255 ) NOT NULL AFTER `parent-uri` " );
}
2010-12-08 03:13:51 +01:00
function update_1021 () {
q ( " ALTER TABLE `profile_check` ADD `sec` CHAR( 255 ) NOT NULL AFTER `dfrn_id` " );
q ( " ALTER TABLE `profile_check` ADD `cid` INT(10) unsigned NOT NULL DEFAULT '0' AFTER `uid` " );
q ( " ALTER TABLE `item` ADD `private` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `deny_gid` " );
}
2010-12-14 23:15:31 +01:00
function update_1022 () {
q ( " CREATE TABLE `pconfig` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`uid` INT NOT NULL DEFAULT '0' ,
`cat` CHAR ( 255 ) NOT NULL ,
`k` CHAR ( 255 ) NOT NULL ,
`v` MEDIUMTEXT NOT NULL
) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci " );
}
2010-12-17 01:35:45 +01:00
function update_1023 () {
q ( " ALTER TABLE `user` ADD `register_date` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' AFTER `timezone` ,
ADD `login_date` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' AFTER `register_date` " );
}
2010-12-20 02:46:26 +01:00
function update_1024 () {
q ( " ALTER TABLE `profile` ADD `keywords` TEXT NOT NULL AFTER `religion` " );
}
2010-12-20 09:27:00 +01:00
function update_1025 () {
q ( " ALTER TABLE `user` ADD `maxreq` int(11) NOT NULL DEFAULT '10' AFTER `pwdreset` " );
}
2010-12-21 04:38:34 +01:00
function update_1026 () {
q ( " CREATE TABLE IF NOT EXISTS `hook` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`hook` CHAR ( 255 ) NOT NULL ,
`file` CHAR ( 255 ) NOT NULL ,
`function` CHAR ( 255 ) NOT NULL
) ENGINE = MYISAM DEFAULT CHARSET = utf8 " );
}
2010-12-22 23:16:22 +01:00
function update_1027 () {
q ( " CREATE TABLE IF NOT EXISTS `addon` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`name` CHAR ( 255 ) NOT NULL ,
`version` CHAR ( 255 ) NOT NULL ,
2014-09-07 17:28:38 +02:00
`installed` TINYINT ( 1 ) NOT NULL DEFAULT '0'
2010-12-22 23:16:22 +01:00
) ENGINE = MYISAM DEFAULT CHARSET = utf8 " );
}
2010-12-23 23:40:32 +01:00
function update_1028 () {
q ( " ALTER TABLE `user` ADD `openidserver` text NOT NULL AFTER `deny_gid` " );
}
2010-12-28 10:06:34 +01:00
function update_1029 () {
q ( " ALTER TABLE `contact` ADD `info` MEDIUMTEXT NOT NULL AFTER `reason` " );
}
2011-01-13 11:01:00 +01:00
function update_1030 () {
q ( " ALTER TABLE `contact` ADD `bdyear` CHAR( 4 ) NOT NULL COMMENT 'birthday notify flag' AFTER `profile-id` " );
q ( " CREATE TABLE IF NOT EXISTS `event` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`uid` INT NOT NULL ,
`cid` INT NOT NULL ,
`created` DATETIME NOT NULL ,
`edited` DATETIME NOT NULL ,
`start` DATETIME NOT NULL ,
`finish` DATETIME NOT NULL ,
`desc` TEXT NOT NULL ,
`location` TEXT NOT NULL ,
`type` CHAR ( 255 ) NOT NULL ,
`adjust` TINYINT ( 1 ) NOT NULL DEFAULT '1' ,
`allow_cid` MEDIUMTEXT NOT NULL ,
`allow_gid` MEDIUMTEXT NOT NULL ,
`deny_cid` MEDIUMTEXT NOT NULL ,
`deny_gid` MEDIUMTEXT NOT NULL
) ENGINE = MYISAM DEFAULT CHARSET = utf8 " );
2011-01-13 11:08:57 +01:00
}
2011-01-18 01:28:32 +01:00
function update_1031 () {
// Repair any bad links that slipped into the item table
$r = q ( " SELECT `id`, `object` FROM `item` WHERE `object` != '' " );
if ( $r && count ( $r )) {
foreach ( $r as $rr ) {
if ( strstr ( $rr [ 'object' ], 'type="http' )) {
2014-03-11 23:52:32 +01:00
q ( " UPDATE `item` SET `object` = '%s' WHERE `id` = %d " ,
2011-01-18 01:28:32 +01:00
dbesc ( str_replace ( 'type="http' , 'href="http' , $rr [ 'object' ])),
intval ( $rr [ 'id' ])
);
}
}
}
}
2014-09-07 17:28:38 +02:00
2011-01-19 04:25:28 +01:00
function update_1032 () {
q ( " ALTER TABLE `profile` ADD `pdesc` CHAR( 255 ) NOT NULL AFTER `name` " );
}
2011-01-31 17:10:36 +01:00
function update_1033 () {
q ( " CREATE TABLE IF NOT EXISTS `cache` (
`k` CHAR ( 255 ) NOT NULL PRIMARY KEY ,
`v` TEXT NOT NULL ,
`updated` DATETIME NOT NULL
2011-03-14 05:53:39 +01:00
) ENGINE = MYISAM DEFAULT CHARSET = utf8 " );
2011-01-31 17:10:36 +01:00
}
2011-02-06 11:33:02 +01:00
function update_1034 () {
2014-09-07 17:28:38 +02:00
// If you have any of these parent-less posts they can cause problems, and
2011-02-06 11:33:02 +01:00
// we need to delete them. You can't see them anyway.
2014-09-07 17:28:38 +02:00
// Legitimate items will usually get re-created on the next
2011-02-06 11:33:02 +01:00
// pull from the hub.
2014-09-07 17:28:38 +02:00
// But don't get rid of a post that may have just come in
2011-02-06 11:33:02 +01:00
// and may not yet have the parent id set.
q ( " DELETE FROM `item` WHERE `parent` = 0 AND `created` < UTC_TIMESTAMP() - INTERVAL 2 MINUTE " );
}
2011-02-07 00:50:50 +01:00
function update_1035 () {
q ( " ALTER TABLE `contact` ADD `success_update` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' AFTER `last-update` " );
2011-02-07 04:15:20 +01:00
}
function update_1036 () {
$r = dbq ( " SELECT * FROM `contact` WHERE `network` = 'dfrn' && `photo` LIKE '%include/photo%' " );
if ( count ( $r )) {
foreach ( $r as $rr ) {
2014-03-11 23:52:32 +01:00
q ( " UPDATE `contact` SET `photo` = '%s', `thumb` = '%s', `micro` = '%s' WHERE `id` = %d " ,
2011-02-07 04:15:20 +01:00
dbesc ( str_replace ( 'include/photo' , 'photo' , $rr [ 'photo' ])),
dbesc ( str_replace ( 'include/photo' , 'photo' , $rr [ 'thumb' ])),
dbesc ( str_replace ( 'include/photo' , 'photo' , $rr [ 'micro' ])),
intval ( $rr [ 'id' ]));
}
}
}
2011-02-09 03:44:30 +01:00
function update_1037 () {
q ( " ALTER TABLE `contact` CHANGE `lrdd` `alias` CHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL " );
}
2011-02-15 12:13:38 +01:00
function update_1038 () {
q ( " ALTER TABLE `item` ADD `plink` CHAR( 255 ) NOT NULL AFTER `target` " );
}
2011-03-09 11:12:32 +01:00
function update_1039 () {
q ( " ALTER TABLE `addon` ADD `timestamp` BIGINT NOT NULL DEFAULT '0' " );
2011-03-09 11:17:08 +01:00
}
2011-03-14 05:53:39 +01:00
function update_1040 () {
q ( " CREATE TABLE IF NOT EXISTS `fcontact` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`url` CHAR ( 255 ) NOT NULL ,
`name` CHAR ( 255 ) NOT NULL ,
`photo` CHAR ( 255 ) NOT NULL
) ENGINE = MYISAM DEFAULT CHARSET = utf8 " );
q ( " CREATE TABLE IF NOT EXISTS `ffinder` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`uid` INT UNSIGNED NOT NULL ,
`cid` INT UNSIGNED NOT NULL ,
`fid` INT UNSIGNED NOT NULL
) ENGINE = MYISAM DEFAULT CHARSET = utf8 " );
}
2011-03-14 08:28:49 +01:00
function update_1041 () {
q ( " ALTER TABLE `profile` CHANGE `keywords` `prv_keywords` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL " );
q ( " ALTER TABLE `profile` ADD `pub_keywords` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER `religion` " );
2011-03-16 01:31:49 +01:00
}
function update_1042 () {
q ( " ALTER TABLE `user` ADD `expire` INT UNSIGNED NOT NULL DEFAULT '0' AFTER `maxreq` " );
}
2011-03-21 01:54:50 +01:00
function update_1043 () {
q ( " ALTER TABLE `user` ADD `blockwall` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `blocked` " );
}
2011-03-23 00:34:12 +01:00
function update_1044 () {
q ( " ALTER TABLE `profile` ADD FULLTEXT ( `pub_keywords` ) " );
q ( " ALTER TABLE `profile` ADD FULLTEXT ( `prv_keywords` ) " );
}
2011-04-01 23:49:15 +02:00
function update_1045 () {
q ( " ALTER TABLE `user` ADD `language` CHAR( 16 ) NOT NULL DEFAULT 'en' AFTER `timezone` " );
}
2011-04-07 04:41:16 +02:00
function update_1046 () {
q ( " ALTER TABLE `item` ADD `attach` MEDIUMTEXT NOT NULL AFTER `tag` " );
}
2011-04-11 03:38:55 +02:00
function update_1047 () {
q ( " ALTER TABLE `contact` ADD `writable` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `readonly` " );
}
2011-04-12 05:11:21 +02:00
function update_1048 () {
q ( " UPDATE `contact` SET `writable` = 1 WHERE `network` = 'stat' AND `notify` != '' " );
}
2011-04-12 06:30:50 +02:00
function update_1049 () {
q ( " CREATE TABLE `mailacct` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
2011-04-12 06:34:22 +02:00
`uid` INT NOT NULL ,
2011-04-12 06:30:50 +02:00
`server` CHAR ( 255 ) NOT NULL ,
`user` CHAR ( 255 ) NOT NULL ,
`pass` CHAR ( 255 ) NOT NULL ,
`reply_to` CHAR ( 255 ) NOT NULL ,
`last_check` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00'
) ENGINE = MYISAM " );
2011-04-12 06:36:04 +02:00
}
2011-04-13 10:18:15 +02:00
function update_1050 () {
q ( " CREATE TABLE `attach` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`uid` INT NOT NULL ,
`filetype` CHAR ( 64 ) NOT NULL ,
`filesize` INT NOT NULL ,
`data` LONGBLOB NOT NULL ,
`created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' ,
`edited` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' ,
`allow_cid` MEDIUMTEXT NOT NULL ,
`allow_gid` MEDIUMTEXT NOT NULL ,
`deny_cid` MEDIUMTEXT NOT NULL ,
`deny_gid` MEDIUMTEXT NOT NULL
) ENGINE = MYISAM " );
}
2011-04-16 08:40:43 +02:00
function update_1051 () {
q ( " ALTER TABLE `mailacct` ADD `port` INT NOT NULL AFTER `server` ,
ADD `ssltype` CHAR ( 16 ) NOT NULL AFTER `port` ,
ADD `mailbox` CHAR ( 255 ) NOT NULL AFTER `ssltype` " );
q ( " ALTER TABLE `contact` ADD `addr` CHAR( 255 ) NOT NULL AFTER `url` " );
}
2011-04-16 17:45:08 +02:00
function update_1052 () {
q ( " ALTER TABLE `mailacct` CHANGE `pass` `pass` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL " );
2011-04-18 08:27:11 +02:00
q ( " ALTER TABLE `mailacct` ADD `pubmail` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `reply_to` " );
q ( " ALTER TABLE `item` ADD `pubmail` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `private` " );
2011-04-16 17:45:08 +02:00
}
2011-04-27 13:24:00 +02:00
function update_1053 () {
q ( " ALTER TABLE `item` ADD `extid` CHAR( 255 ) NOT NULL AFTER `parent-uri` , ADD INDEX ( `extid` ) " );
}
2011-05-24 05:30:37 +02:00
function update_1054 () {
q ( " ALTER TABLE `register` ADD `language` CHAR( 16 ) NOT NULL AFTER `password` " );
}
2011-05-25 01:30:52 +02:00
function update_1055 () {
q ( " ALTER TABLE `profile` ADD `hidewall` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `hide-friends` " );
2011-05-25 07:40:52 +02:00
}
function update_1056 () {
q ( " ALTER TABLE `attach` ADD `hash` CHAR( 64 ) NOT NULL AFTER `uid` " );
}
2011-05-25 11:08:15 +02:00
function update_1057 () {
q ( " ALTER TABLE `attach` ADD `filename` CHAR( 255 ) NOT NULL AFTER `hash` " );
}
2011-05-28 03:47:28 +02:00
function update_1058 () {
q ( " ALTER TABLE `item` ADD `event-id` INT NOT NULL AFTER `resource-id` " );
}
2011-06-03 10:16:17 +02:00
function update_1059 () {
q ( " ALTER TABLE `queue` ADD `network` CHAR( 32 ) NOT NULL AFTER `cid` " );
}
2011-06-06 08:10:07 +02:00
function update_1060 () {
q ( " ALTER TABLE `event` ADD `uri` CHAR( 255 ) NOT NULL AFTER `cid` " );
}
2011-06-08 05:10:43 +02:00
function update_1061 () {
q ( " ALTER TABLE `event` ADD `nofinish` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `type` " );
}
2011-06-09 06:06:02 +02:00
function update_1062 () {
q ( " ALTER TABLE `user` ADD `prvnets` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `page-flags` " );
}
2011-06-19 15:42:06 +02:00
function update_1063 () {
q ( " ALTER TABLE `addon` ADD `plugin_admin` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `timestamp` " );
}
2011-06-09 06:06:02 +02:00
2011-06-21 04:08:40 +02:00
function update_1064 () {
q ( " ALTER TABLE `item` ADD `app` CHAR( 255 ) NOT NULL AFTER `body` " );
}
2011-06-22 03:03:54 +02:00
function update_1065 () {
q ( " ALTER TABLE `intro` ADD `fid` INT NOT NULL DEFAULT '0' AFTER `uid` " );
}
2011-06-24 02:56:59 +02:00
function update_1066 () {
$r = q ( " ALTER TABLE `item` ADD `received` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' AFTER `edited` " );
if ( $r )
q ( " ALTER TABLE `item` ADD INDEX ( `received` ) " );
$r = q ( " UPDATE `item` SET `received` = `edited` WHERE 1 " );
2011-06-26 14:42:32 +02:00
}
function update_1067 () {
q ( " ALTER TABLE `ffinder` ADD `type` CHAR( 16 ) NOT NULL AFTER `id` ,
ADD `note` TEXT NOT NULL AFTER `type` " );
}
2011-06-27 02:57:23 +02:00
function update_1068 () {
// 1067 was short-sighted. Undo it.
q ( " ALTER TABLE `ffinder` DROP `type` , DROP `note` " );
// and do this instead.
q ( " CREATE TABLE IF NOT EXISTS `fsuggest` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`uid` INT NOT NULL ,
`cid` INT NOT NULL ,
`name` CHAR ( 255 ) NOT NULL ,
`url` CHAR ( 255 ) NOT NULL ,
`photo` CHAR ( 255 ) NOT NULL ,
`note` TEXT NOT NULL ,
2014-09-07 17:28:38 +02:00
`created` DATETIME NOT NULL
2011-06-27 02:57:23 +02:00
) ENGINE = MYISAM DEFAULT CHARSET = utf8 " );
}
2011-06-27 04:30:57 +02:00
function update_1069 () {
q ( " ALTER TABLE `fsuggest` ADD `request` CHAR( 255 ) NOT NULL AFTER `url` " );
q ( " ALTER TABLE `fcontact` ADD `request` CHAR( 255 ) NOT NULL AFTER `photo` " );
}
2011-07-01 04:02:11 +02:00
// mail body needs to accomodate private photos
function update_1070 () {
q ( " ALTER TABLE `mail` CHANGE `body` `body` MEDIUMTEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL " );
}
2011-07-02 07:36:33 +02:00
function update_1071 () {
q ( " ALTER TABLE `photo` ADD INDEX ( `uid` ) " );
q ( " ALTER TABLE `photo` ADD INDEX ( `resource-id` ) " );
q ( " ALTER TABLE `photo` ADD INDEX ( `album` ) " );
q ( " ALTER TABLE `photo` ADD INDEX ( `scale` ) " );
q ( " ALTER TABLE `photo` ADD INDEX ( `profile` ) " );
}
2011-07-03 02:56:57 +02:00
function update_1072 () {
q ( " ALTER TABLE `item` ADD `starred` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `visible` " );
q ( " ALTER TABLE `item` ADD INDEX ( `starred` ) " );
}
2011-07-06 04:55:09 +02:00
function update_1073 () {
q ( " ALTER TABLE `contact` ADD `remote_self` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `self` " );
}
2011-07-06 08:23:43 +02:00
function update_1074 () {
q ( " ALTER TABLE `user` ADD `hidewall` TINYINT( 1) NOT NULL DEFAULT '0' AFTER `blockwall` " );
$r = q ( " SELECT `uid` FROM `profile` WHERE `is-default` = 1 AND `hidewall` = 1 " );
if ( count ( $r )) {
foreach ( $r as $rr )
2014-03-11 23:52:32 +01:00
q ( " UPDATE `user` SET `hidewall` = 1 WHERE `uid` = %d " ,
2011-07-06 08:23:43 +02:00
intval ( $rr [ 'uid' ])
);
}
q ( " ALTER TABLE `profile` DROP `hidewall` " );
}
2011-07-19 03:13:46 +02:00
function update_1075 () {
q ( " ALTER TABLE `user` ADD `guid` CHAR( 16 ) NOT NULL AFTER `uid` " );
$r = q ( " SELECT `uid` FROM `user` WHERE 1 " );
if ( count ( $r )) {
foreach ( $r as $rr ) {
$found = true ;
do {
$guid = substr ( random_string (), 0 , 16 );
$x = q ( " SELECT `uid` FROM `user` WHERE `guid` = '%s' LIMIT 1 " ,
dbesc ( $guid )
);
if ( ! count ( $x ))
$found = false ;
} while ( $found == true );
2014-03-11 23:52:32 +01:00
q ( " UPDATE `user` SET `guid` = '%s' WHERE `uid` = %d " ,
2011-07-19 03:13:46 +02:00
dbesc ( $guid ),
intval ( $rr [ 'uid' ])
);
}
}
2011-08-04 07:05:20 +02:00
}
function update_1076 () {
2011-08-08 01:15:54 +02:00
q ( " CREATE TABLE `guid` ( `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`guid` CHAR ( 16 ) NOT NULL , INDEX ( `guid` ) ) ENGINE = MYISAM " );
}
// There was a typo in 1076 so we'll try again in 1077 to make sure
2014-09-07 17:28:38 +02:00
// We'll also make it big enough to allow for future growth, I seriously
2011-08-08 01:24:20 +02:00
// doubt Diaspora will be able to leave guids at 16 bytes,
// and we can also use the same structure for our own larger guids
2011-08-08 01:15:54 +02:00
function update_1077 () {
q ( " CREATE TABLE IF NOT EXISTS `guid` ( `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
2011-08-04 07:05:20 +02:00
`guid` CHAR ( 16 ) NOT NULL , INDEX ( `guid` ) ) ENGINE = MYISAM " );
2014-09-07 17:28:38 +02:00
q ( " ALTER TABLE `guid` CHANGE `guid` `guid` CHAR( 64 ) NOT NULL " );
2011-08-04 07:05:20 +02:00
}
2011-08-08 02:29:26 +02:00
function update_1078 () {
q ( " ALTER TABLE `item` ADD `guid` CHAR( 64 ) NOT NULL AFTER `id` , ADD INDEX ( `guid` ) " );
}
2011-08-18 05:52:18 +02:00
function update_1079 () {
q ( " CREATE TABLE IF NOT EXISTS `sign` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`iid` INT UNSIGNED NOT NULL ,
`signed_text` MEDIUMTEXT NOT NULL ,
`signature` TEXT NOT NULL ,
`signer` CHAR ( 255 ) NOT NULL ,
INDEX ( `iid` )
) ENGINE = MYISAM " );
q ( " ALTER TABLE `fcontact` ADD `nick` CHAR( 255 ) NOT NULL ,
ADD `addr` CHAR ( 255 ) NOT NULL ,
ADD `notify` CHAR ( 255 ) NOT NULL ,
ADD `poll` CHAR ( 255 ) NOT NULL ,
ADD `confirm` CHAR ( 255 ) NOT NULL ,
ADD `priority` TINYINT ( 1 ) NOT NULL ,
ADD `network` CHAR ( 32 ) NOT NULL ,
ADD `alias` CHAR ( 255 ) NOT NULL ,
ADD `pubkey` TEXT NOT NULL ,
2014-09-07 17:28:38 +02:00
ADD INDEX ( `addr` ) ,
2011-08-18 05:52:18 +02:00
ADD INDEX ( `network` ) " );
}
2011-08-18 13:20:30 +02:00
function update_1080 () {
q ( " ALTER TABLE `fcontact` ADD `updated` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' " );
2011-08-24 03:17:35 +02:00
}
function update_1081 () {
2011-08-27 06:51:12 +02:00
// there was a typo in update 1081 so it was corrected and moved up to 1082
}
function update_1082 () {
2011-08-27 06:37:00 +02:00
q ( " ALTER TABLE `photo` ADD `guid` CHAR( 64 ) NOT NULL AFTER `contact-id`,
2011-08-24 03:17:35 +02:00
ADD INDEX ( `guid` ) " );
2011-08-27 06:51:12 +02:00
// make certain the following code is only executed once
$r = q ( " select `id` from `photo` where `guid` != '' limit 1 " );
if ( $r && count ( $r ))
return ;
2011-08-24 03:17:35 +02:00
$r = q ( " SELECT distinct(`resource-id`) FROM `photo` WHERE 1 group by `id` " );
if ( count ( $r )) {
foreach ( $r as $rr ) {
$guid = get_guid ();
q ( " update `photo` set `guid` = '%s' where `resource-id` = '%s' " ,
dbesc ( $guid ),
dbesc ( $rr [ 'resource-id' ])
);
}
}
}
2011-08-29 06:41:42 +02:00
function update_1083 () {
q ( " CREATE TABLE IF NOT EXISTS `deliverq` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`cmd` CHAR ( 32 ) NOT NULL ,
`item` INT NOT NULL ,
`contact` INT NOT NULL
2011-09-05 02:35:06 +02:00
) ENGINE = MYISAM " );
2011-08-29 06:41:42 +02:00
2011-09-02 03:02:08 +02:00
}
function update_1084 () {
q ( " ALTER TABLE `contact` ADD `attag` CHAR( 255 ) NOT NULL AFTER `nick` " );
}
2011-09-05 02:35:06 +02:00
function update_1085 () {
q ( " CREATE TABLE IF NOT EXISTS `search` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`uid` INT NOT NULL ,
`term` CHAR ( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
INDEX ( `uid` ),
INDEX ( `term` )
) ENGINE = MYISAM " );
}
2011-09-05 04:58:03 +02:00
function update_1086 () {
q ( " ALTER TABLE `item` ADD `bookmark` tinyint(1) NOT NULL DEFAULT '0' AFTER `starred` " );
}
2011-09-19 04:04:11 +02:00
function update_1087 () {
q ( " ALTER TABLE `item` ADD `commented` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' AFTER `edited` " );
$r = q ( " SELECT `id` FROM `item` WHERE `parent` = `id` " );
if ( count ( $r )) {
foreach ( $r as $rr ) {
$x = q ( " SELECT max(`created`) AS `cdate` FROM `item` WHERE `parent` = %d LIMIT 1 " ,
intval ( $rr [ 'id' ])
);
if ( count ( $x ))
2014-03-11 23:52:32 +01:00
q ( " UPDATE `item` SET `commented` = '%s' WHERE `id` = %d " ,
2011-09-19 04:04:11 +02:00
dbesc ( $x [ 0 ][ 'cdate' ]),
intval ( $rr [ 'id' ])
);
}
}
}
2011-09-19 04:53:45 +02:00
function update_1088 () {
q ( " ALTER TABLE `user` ADD `account_expired` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `expire` ,
ADD `account_expires_on` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' AFTER `account_expired` ,
ADD `expire_notification_sent` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' AFTER `account_expires_on` " );
}
2011-09-19 07:42:47 +02:00
function update_1089 () {
q ( " ALTER TABLE `user` ADD `blocktags` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `hidewall` " );
}
2011-09-20 10:49:08 +02:00
function update_1090 () {
q ( " ALTER TABLE `contact` ADD `batch` char(255) NOT NULL AFTER `prvkey` " );
q ( " UPDATE `contact` SET `batch` = concat(substring_index(`url`,'/',3),'/receive/public') WHERE `network` = 'dspr' " );
}
2011-09-22 13:11:39 +02:00
function update_1091 () {
// catch a few stragglers that may have crept in before we added this on remote connects
q ( " UPDATE `contact` SET `batch` = concat(substring_index(`url`,'/',3),'/receive/public') WHERE `network` = 'dspr' AND `batch` = '' " );
q ( " ALTER TABLE `queue` ADD `batch` TINYINT( 1 ) NOT NULL DEFAULT '0' " );
q ( " ALTER TABLE `fcontact` ADD `batch` char(255) NOT NULL AFTER `addr` " );
}
2011-09-30 06:20:19 +02:00
function update_1092 () {
q ( " ALTER TABLE `user` ADD INDEX ( `login_date` ) " );
q ( " ALTER TABLE `user` ADD INDEX ( `account_expired` ) " );
2011-10-02 08:19:20 +02:00
}
function update_1093 () {
q ( " CREATE TABLE IF NOT EXISTS `fserver` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`server` CHAR ( 255 ) NOT NULL ,
`posturl` CHAR ( 255 ) NOT NULL ,
`key` TEXT NOT NULL ,
INDEX ( `server` )
) ENGINE = MYISAM " );
q ( " ALTER TABLE `group` ADD `visible` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `uid` " );
2011-10-12 03:24:37 +02:00
}
function update_1094 () {
q ( " ALTER TABLE `item` ADD `postopts` TEXT NOT NULL AFTER `target` " );
}
2011-10-14 09:20:37 +02:00
function update_1095 () {
q ( " ALTER TABLE `contact` ADD `bd` DATE NOT NULL AFTER `bdyear` " );
}
2011-10-15 12:26:37 +02:00
function update_1096 () {
q ( " ALTER TABLE `item` ADD `origin` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `deleted` , ADD INDEX ( `origin` ) " );
}
2011-10-22 10:29:26 +02:00
function update_1097 () {
2014-09-07 17:28:38 +02:00
q ( " ALTER TABLE `queue`
ADD INDEX ( `cid` ),
ADD INDEX ( `created` ),
ADD INDEX ( `last` ),
ADD INDEX ( `network` ),
ADD INDEX ( `batch` )
2011-10-27 00:14:12 +02:00
" );
2011-10-22 10:29:26 +02:00
}
2011-10-15 12:26:37 +02:00
2011-10-27 00:14:12 +02:00
function update_1098 () {
2014-09-07 17:28:38 +02:00
q ( " ALTER TABLE `contact`
ADD INDEX ( `network` ),
ADD INDEX ( `name` ),
ADD INDEX ( `nick` ),
ADD INDEX ( `attag` ),
2011-10-27 00:14:12 +02:00
ADD INDEX ( `url` ),
2014-09-07 17:28:38 +02:00
ADD INDEX ( `addr` ),
ADD INDEX ( `batch` )
2011-10-27 00:14:12 +02:00
" );
}
2011-11-01 04:39:04 +01:00
function update_1099 () {
q ( " CREATE TABLE IF NOT EXISTS `gcontact` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`name` CHAR ( 255 ) NOT NULL ,
`url` CHAR ( 255 ) NOT NULL ,
`nurl` CHAR ( 255 ) NOT NULL ,
`photo` CHAR ( 255 ) NOT NULL
) ENGINE = MYISAM " );
q ( " CREATE TABLE IF NOT EXISTS `glink` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`cid` INT NOT NULL ,
`uid` INT NOT NULL ,
`gcid` INT NOT NULL ,
2011-11-01 05:39:21 +01:00
`updated` DATETIME NOT NULL
2011-11-01 04:39:04 +01:00
) ENGINE = MYISAM " );
q ( " ALTER TABLE `gcontact` ADD INDEX (`nurl`) " );
q ( " ALTER TABLE `glink` ADD INDEX (`cid`), ADD INDEX (`uid`), ADD INDEX (`gcid`), ADD INDEX (`updated`) " );
2011-10-27 00:14:12 +02:00
2014-09-07 17:28:38 +02:00
q ( " ALTER TABLE `contact` ADD `poco` TEXT NOT NULL AFTER `confirm` " );
2011-10-27 00:14:12 +02:00
2011-11-01 04:39:04 +01:00
}
2011-10-27 00:14:12 +02:00
2011-11-02 00:08:07 +01:00
function update_1100 () {
q ( " ALTER TABLE `contact` ADD `nurl` CHAR( 255 ) NOT NULL AFTER `url` " );
q ( " alter table contact add index (`nurl`) " );
require_once ( 'include/text.php' );
$r = q ( " select id, url from contact where url != '' and nurl = '' " );
if ( count ( $r )) {
foreach ( $r as $rr ) {
2014-03-11 23:52:32 +01:00
q ( " update contact set nurl = '%s' where id = %d " ,
2011-11-02 00:08:07 +01:00
dbesc ( normalise_link ( $rr [ 'url' ])),
intval ( $rr [ 'id' ])
2014-09-07 17:28:38 +02:00
);
2011-11-02 00:08:07 +01:00
}
}
}
2011-10-27 00:14:12 +02:00
2011-11-04 00:00:52 +01:00
function update_1101 () {
q ( " CREATE TABLE IF NOT EXISTS `gcign` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`uid` INT NOT NULL ,
`gcid` INT NOT NULL
) ENGINE = MYISAM " );
q ( " ALTER TABLE `gcign` ADD INDEX (`uid`), ADD INDEX (`gcid`) " );
}
2011-11-07 17:48:14 +01:00
function update_1102 () {
2014-09-07 17:28:38 +02:00
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` " );
2011-11-04 00:00:52 +01:00
2014-09-07 17:28:38 +02:00
q ( " ALTER TABLE `tokens` ADD `secret` TEXT NOT NULL AFTER `id` " );
q ( " ALTER TABLE `tokens` ADD `uid` INT NOT NULL AFTER `scope` " );
2011-11-07 17:48:14 +01:00
}
2011-10-27 00:14:12 +02:00
2011-11-16 08:14:25 +01:00
function update_1103 () {
2011-11-24 08:17:26 +01:00
// q("ALTER TABLE `item` ADD INDEX ( `wall` ) ");
2014-09-07 17:28:38 +02:00
q ( " ALTER TABLE `item` ADD FULLTEXT ( `tag` ) " );
2011-11-16 08:14:25 +01:00
q ( " ALTER TABLE `contact` ADD INDEX ( `pending` ) " );
q ( " ALTER TABLE `user` ADD INDEX ( `hidewall` ) " );
q ( " ALTER TABLE `user` ADD INDEX ( `blockwall` ) " );
q ( " ALTER TABLE `user` ADD INDEX ( `blocked` ) " );
q ( " ALTER TABLE `user` ADD INDEX ( `verified` ) " );
2011-10-27 00:14:12 +02:00
2011-11-16 08:14:25 +01:00
}
2011-10-27 00:14:12 +02:00
2011-11-19 06:55:00 +01:00
function update_1104 () {
q ( " ALTER TABLE `item` ADD `forum_mode` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `origin` , ADD INDEX ( `forum_mode` ) " );
}
2011-11-28 02:41:23 +01:00
function update_1105 () {
q ( " ALTER TABLE `mail` ADD `convid` INT NOT NULL AFTER `contact-id` " );
q ( " ALTER TABLE `mail` ADD `guid` CHAR( 64 ) NOT NULL AFTER `uid` " );
q ( " CREATE TABLE IF NOT EXISTS `conv` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`guid` CHAR ( 64 ) NOT NULL ,
`recips` MEDIUMTEXT NOT NULL ,
`uid` INT NOT NULL
) ENGINE = MYISAM " );
}
2011-11-19 06:55:00 +01:00
2011-11-29 23:35:20 +01:00
function update_1106 () {
q ( " ALTER TABLE `item` ADD INDEX ( `author-link` ) " );
}
2011-12-03 22:53:49 +01:00
function update_1107 () {
q ( " ALTER TABLE `item` ADD INDEX ( `bookmark` ) " );
}
2014-09-07 17:28:38 +02:00
function update_1108 () {
2011-12-05 11:16:59 +01:00
q ( " ALTER TABLE `contact` ADD `hidden` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `writable` ,
ADD INDEX ( `hidden` ) " );
2011-10-27 00:14:12 +02:00
2011-12-05 11:16:59 +01:00
}
2011-12-06 09:16:13 +01:00
function update_1109 () {
q ( " ALTER TABLE `conv` ADD `creator` CHAR( 255 ) NOT NULL ,
ADD `created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' ,
ADD `updated` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' ,
ADD `subject` MEDIUMTEXT NOT NULL ,
ADD INDEX ( `created` ), ADD INDEX ( `updated` ) " );
}
2011-12-07 04:15:42 +01:00
function update_1110 () {
q ( " ALTER TABLE `mail` ADD `reply` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `seen`,
ADD INDEX ( `reply` ), ADD INDEX ( `uid` ), ADD INDEX ( `guid` ), ADD INDEX ( `seen` ),
ADD INDEX ( `uri` ), ADD INDEX ( `parent-uri` ), ADD INDEX ( `created` ), ADD INDEX ( `convid` ) " );
}
2011-12-18 09:50:17 +01:00
function update_1111 () {
q ( " ALTER TABLE `gcontact` ADD `connect` CHAR( 255 ) NOT NULL " );
}
2012-01-01 09:39:22 +01:00
function update_1112 () {
q ( " CREATE TABLE IF NOT EXISTS `notify` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`type` INT ( 11 ) NOT NULL ,
`name` CHAR ( 255 ) NOT NULL ,
`url` CHAR ( 255 ) NOT NULL ,
`photo` CHAR ( 255 ) NOT NULL ,
`date` DATETIME NOT NULL ,
`msg` MEDIUMTEXT NOT NULL ,
`uid` INT NOT NULL ,
`link` CHAR ( 255 ) NOT NULL ,
`seen` TINYINT ( 1 ) NOT NULL DEFAULT '0'
) ENGINE = MYISAM " );
q ( " ALTER TABLE `notify` ADD INDEX ( `type` ), ADD INDEX ( `uid`), ADD INDEX (`seen`), ADD INDEX (`date`) " );
2012-01-02 07:44:03 +01:00
}
function update_1113 () {
q ( " ALTER TABLE `notify` ADD `verb` CHAR( 255 ) NOT NULL ,
ADD `otype` CHAR ( 16 ) NOT NULL " );
}
2012-01-04 05:26:20 +01:00
function update_1114 () {
q ( " CREATE TABLE IF NOT EXISTS `item_id` (
`iid` INT NOT NULL ,
`uid` INT NOT NULL ,
`face` CHAR ( 255 ) NOT NULL ,
`dspr` CHAR ( 255 ) NOT NULL ,
`twit` CHAR ( 255 ) NOT NULL ,
`stat` CHAR ( 255 ) NOT NULL ,
PRIMARY KEY ( `iid` ),
INDEX ( `uid` ),
INDEX ( `face` ),
INDEX ( `dspr` ),
INDEX ( `twit` ),
INDEX ( `stat` )
) ENGINE = MYISAM " );
}
2012-01-24 05:56:11 +01:00
function update_1115 () {
2014-09-07 17:28:38 +02:00
q ( " ALTER TABLE `item` ADD `moderated`
TINYINT ( 1 ) NOT NULL DEFAULT '0' AFTER `pubmail` ,
2012-01-24 05:56:11 +01:00
ADD INDEX ( `moderated` ) " );
2012-01-25 09:30:36 +01:00
}
2012-01-27 01:52:12 +01:00
function update_1116 () {
2012-01-27 08:56:47 +01:00
//typo! corrected update was rolled forward
}
function update_1117 () {
q ( " create table if not exists `manage` (
2012-01-27 01:52:12 +01:00
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`uid` INT NOT NULL ,
`mid` INT NOT NULL ,
INDEX ( `uid` ),
INDEX ( `mid` )
) ENGINE = MYISAM " );
}
2012-02-01 08:54:53 +01:00
function update_1118 () {
2012-02-05 23:30:24 +01:00
// rolled forward
2012-02-01 08:54:53 +01:00
}
2012-02-02 03:50:11 +01:00
function update_1119 () {
2012-02-05 23:30:24 +01:00
q ( " ALTER TABLE `contact` ADD `closeness` TINYINT( 2 ) NOT NULL DEFAULT '99' AFTER `reason` , ADD INDEX (`closeness`) " );
q ( " update contact set closeness = 0 where self = 1 " );
2012-02-02 03:50:11 +01:00
q ( " ALTER TABLE `item` ADD `spam` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `visible` , ADD INDEX (`spam`) " );
}
2012-02-10 22:43:35 +01:00
function update_1120 () {
// item table update from 1119 did not get into database.sql file.
// might be missing on new installs. We'll check.
$r = q ( " describe item " );
if ( $r && count ( $r )) {
foreach ( $r as $rr )
if ( $rr [ 'Field' ] == 'spam' )
return ;
}
q ( " ALTER TABLE `item` ADD `spam` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `visible` , ADD INDEX (`spam`) " );
}
2012-02-14 03:02:43 +01:00
function update_1121 () {
q ( " CREATE TABLE IF NOT EXISTS `poll_result` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`poll_id` INT NOT NULL ,
`choice` INT NOT NULL ,
INDEX ( `poll_id` ),
INDEX ( `choice` )
) ENGINE = MYISAM " );
q ( " CREATE TABLE IF NOT EXISTS `poll` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`uid` INT NOT NULL ,
`q0` MEDIUMTEXT NOT NULL ,
`q1` MEDIUMTEXT NOT NULL ,
`q2` MEDIUMTEXT NOT NULL ,
`q3` MEDIUMTEXT NOT NULL ,
`q4` MEDIUMTEXT NOT NULL ,
`q5` MEDIUMTEXT NOT NULL ,
`q6` MEDIUMTEXT NOT NULL ,
`q7` MEDIUMTEXT NOT NULL ,
`q8` MEDIUMTEXT NOT NULL ,
`q9` MEDIUMTEXT NOT NULL ,
INDEX ( `uid` )
) ENGINE = MYISAM " );
}
2012-02-21 04:50:05 +01:00
function update_1122 () {
q ( " ALTER TABLE `notify` ADD `hash` CHAR( 64 ) NOT NULL AFTER `id` ,
ADD INDEX ( `hash` ) " );
2012-02-24 05:29:09 +01:00
}
function update_1123 () {
set_config ( 'system' , 'allowed_themes' , 'dispy,quattro,testbubble,vier,darkbubble,darkzero,duepuntozero,greenzero,purplezero,quattro-green,slackr' );
}
2012-02-25 05:40:09 +01:00
function update_1124 () {
q ( " alter table item add index (`author-name`) " );
2012-02-25 22:06:06 +01:00
}
function update_1125 () {
q ( " CREATE TABLE IF NOT EXISTS `notify-threads` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`notify-id` INT NOT NULL ,
`master-parent-item` INT ( 10 ) unsigned NOT NULL DEFAULT '0' ,
`parent-item` INT ( 10 ) unsigned NOT NULL DEFAULT '0' ,
`receiver-uid` INT NOT NULL ,
INDEX ( `master-parent-item` ),
INDEX ( `receiver-uid` )
) ENGINE = MyISAM DEFAULT CHARSET = utf8 " );
}
2012-02-26 23:39:29 +01:00
function update_1126 () {
q ( " ALTER TABLE `mailacct` ADD `action` INT NOT NULL AFTER `pass`,
ADD `movetofolder` CHAR ( 255 ) NOT NULL AFTER `action` " );
}
2012-02-27 03:53:48 +01:00
function update_1127 () {
q ( " CREATE TABLE IF NOT EXISTS `spam` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`uid` INT NOT NULL ,
`spam` INT NOT NULL DEFAULT '0' ,
`ham` INT NOT NULL DEFAULT '0' ,
`term` CHAR ( 255 ) NOT NULL ,
INDEX ( `uid` ),
INDEX ( `spam` ),
INDEX ( `ham` ),
INDEX ( `term` )
) ENGINE = MyISAM DEFAULT CHARSET = utf8 " );
}
2012-02-28 08:27:16 +01:00
function update_1128 () {
q ( " alter table spam add `date` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' AFTER `term` " );
}
2012-03-01 03:19:08 +01:00
function update_1129 () {
q ( " ALTER TABLE `notify` ADD `parent` INT NOT NULL AFTER `link` , ADD INDEX ( `parent` ), ADD INDEX ( `link` ), ADD INDEX ( `otype` ) " );
2012-03-02 09:09:10 +01:00
}
function update_1130 () {
q ( " ALTER TABLE `item` ADD `file` MEDIUMTEXT NOT NULL AFTER `inform`, ADD FULLTEXT KEY (`file`) " );
}
2012-03-16 00:38:26 +01:00
function update_1131 () {
q ( " ALTER TABLE `contact` ADD `forum` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `writable` , ADD INDEX ( `forum` ) " );
}
2012-03-22 09:46:52 +01:00
function update_1132 () {
q ( " CREATE TABLE IF NOT EXISTS `userd` (
2012-03-15 12:55:49 +01:00
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
2012-03-22 09:46:52 +01:00
`username` CHAR ( 255 ) NOT NULL ,
INDEX ( `username` )
) ENGINE = MYISAM " );
2012-03-15 11:45:06 +01:00
}
2012-04-05 13:27:09 +02:00
function update_1133 () {
2012-06-01 03:40:12 +02:00
q ( " ALTER TABLE `user` ADD `unkmail` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `blocktags` , ADD INDEX ( `unkmail` ) " );
q ( " ALTER TABLE `user` ADD `cntunkmail` INT NOT NULL DEFAULT '10' AFTER `unkmail` , ADD INDEX ( `cntunkmail` ) " );
2012-04-05 13:39:15 +02:00
q ( " ALTER TABLE `mail` ADD `unknown` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `replied` , ADD INDEX ( `unknown` ) " );
}
function update_1134 () {
2012-04-06 12:25:01 +02:00
// faulty update merged forward
// had a hardwired tablename of 'friendica' which isn't the right name on most systems
}
function update_1135 () {
2014-09-07 17:28:38 +02:00
//there can't be indexes with more than 1000 bytes in mysql,
2012-04-05 13:27:09 +02:00
//so change charset to be smaller
q ( " ALTER TABLE `config` CHANGE `cat` `cat` CHAR( 255 ) CHARACTER SET ascii COLLATE ascii_general_ci NOT NULL ,
2014-09-07 17:28:38 +02:00
CHANGE `k` `k` CHAR ( 255 ) CHARACTER SET ascii COLLATE ascii_general_ci NOT NULL " );
2012-04-05 13:27:09 +02:00
//same thing for pconfig
q ( " ALTER TABLE `pconfig` CHANGE `cat` `cat` CHAR( 255 ) CHARACTER SET ascii COLLATE ascii_general_ci NOT NULL ,
2014-09-07 17:28:38 +02:00
CHANGE `k` `k` CHAR ( 255 ) CHARACTER SET ascii COLLATE ascii_general_ci NOT NULL " );
2012-04-06 14:11:09 +02:00
// faulty update merged forward. Bad update in 1134 caused duplicate k,cat pairs
2014-09-07 17:28:38 +02:00
// these have to be cleared before the unique keys can be added.
2012-04-06 14:11:09 +02:00
}
function update_1136 () {
$arr = array ();
// order in reverse so that we save the newest entry
$r = q ( " select * from config where 1 order by id desc " );
if ( count ( $r )) {
foreach ( $r as $rr ) {
$found = false ;
foreach ( $arr as $x ) {
if ( $x [ 'cat' ] == $rr [ 'cat' ] && $x [ 'k' ] == $rr [ 'k' ]) {
$found = true ;
2014-03-11 23:52:32 +01:00
q ( " delete from config where id = %d " ,
2012-04-06 14:11:09 +02:00
intval ( $rr [ 'id' ])
);
}
}
if ( ! $found ) {
$arr [] = $rr ;
}
}
}
2014-09-07 17:28:38 +02:00
2012-04-06 14:11:09 +02:00
$arr = array ();
$r = q ( " select * from pconfig where 1 order by id desc " );
if ( count ( $r )) {
foreach ( $r as $rr ) {
$found = false ;
foreach ( $arr as $x ) {
if ( $x [ 'uid' ] == $rr [ 'uid' ] && $x [ 'cat' ] == $rr [ 'cat' ] && $x [ 'k' ] == $rr [ 'k' ]) {
$found = true ;
2014-03-11 23:52:32 +01:00
q ( " delete from pconfig where id = %d " ,
2012-04-06 14:11:09 +02:00
intval ( $rr [ 'id' ])
);
}
}
if ( ! $found ) {
$arr [] = $rr ;
}
}
}
2014-09-07 17:28:38 +02:00
q ( " ALTER TABLE `config` ADD UNIQUE `access` ( `cat` , `k` ) " );
q ( " ALTER TABLE `pconfig` ADD UNIQUE `access` ( `uid` , `cat` , `k` ) " );
2012-04-06 14:11:09 +02:00
2012-04-12 01:13:57 +02:00
}
function update_1137 () {
q ( " alter table item_id DROP `face` , DROP `dspr` , DROP `twit` , DROP `stat` " );
q ( " ALTER TABLE `item_id` ADD `sid` CHAR( 255 ) NOT NULL AFTER `uid` , ADD `service` CHAR( 255 ) NOT NULL AFTER `sid` , add index (`sid`), add index ( `service`) " );
}
2012-04-28 01:46:28 +02:00
function update_1138 () {
q ( " alter table contact add archive tinyint(1) not null default '0' after hidden, add index (archive) " );
2012-04-29 10:08:28 +02:00
}
function update_1139 () {
$r = q ( " alter table user add account_removed tinyint(1) not null default '0' after expire, add index(account_removed) " );
if ( ! $r )
return UPDATE_FAILED ;
return UPDATE_SUCCESS ;
}
2012-05-01 08:07:52 +02:00
function update_1140 () {
$r = q ( " alter table addon add hidden tinyint(1) not null default '0' after installed, add index(hidden) " );
if ( ! $r )
return UPDATE_FAILED ;
return UPDATE_SUCCESS ;
2012-05-01 10:16:47 +02:00
}
function update_1141 () {
$r = q ( " alter table glink add zcid int(11) not null after gcid, add index(zcid) " );
if ( ! $r )
return UPDATE_FAILED ;
return UPDATE_SUCCESS ;
}
2012-05-02 10:45:57 +02:00
function update_1142 () {
$r = q ( " alter table user add service_class char(32) not null after expire_notification_sent, add index(service_class) " );
if ( ! $r )
return UPDATE_FAILED ;
return UPDATE_SUCCESS ;
}
2012-05-18 07:44:52 +02:00
function update_1143 () {
$r = q ( " alter table user add def_gid int(11) not null default '0' after service_class " );
if ( ! $r )
return UPDATE_FAILED ;
return UPDATE_SUCCESS ;
}
2012-05-30 07:57:15 +02:00
function update_1144 () {
$r = q ( " alter table contact add prv tinyint(1) not null default '0' after forum " );
if ( ! $r )
return UPDATE_FAILED ;
return UPDATE_SUCCESS ;
}
2012-06-02 11:30:26 +02:00
function update_1145 () {
$r = q ( " alter table profile add howlong datetime not null default '0000-00-00 00:00:00' after `with` " );
if ( ! $r )
return UPDATE_FAILED ;
return UPDATE_SUCCESS ;
}
2012-06-03 05:58:20 +02:00
function update_1146 () {
$r = q ( " alter table profile add hometown char(255) not null after `country-name`, add index ( `hometown` ) " );
if ( ! $r )
return UPDATE_FAILED ;
return UPDATE_SUCCESS ;
}
2012-06-03 22:52:42 +02:00
function update_1147 () {
2012-06-03 00:11:31 +02:00
$r1 = q ( " ALTER TABLE `sign` ALTER `iid` SET DEFAULT '0' " );
2012-06-01 17:07:51 +02:00
$r2 = q ( " ALTER TABLE `sign` ADD `retract_iid` INT(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `iid` " );
2014-09-07 17:28:38 +02:00
$r3 = q ( " ALTER TABLE `sign` ADD INDEX ( `retract_iid` ) " );
2012-06-01 17:07:51 +02:00
if (( ! $r1 ) || ( ! $r2 ) || ( ! $r3 ))
return UPDATE_FAILED ;
return UPDATE_SUCCESS ;
}
2012-06-02 11:30:26 +02:00
2012-06-07 17:42:13 +02:00
function update_1148 () {
$r = q ( " ALTER TABLE photo ADD type CHAR(128) NOT NULL DEFAULT 'image/jpeg' AFTER filename " );
if ( ! $r )
return UPDATE_FAILED ;
return UPDATE_SUCCESS ;
}
2012-06-25 06:16:55 +02:00
function update_1149 () {
$r1 = q ( " ALTER TABLE profile ADD likes text NOT NULL after prv_keywords " );
$r2 = q ( " ALTER TABLE profile ADD dislikes text NOT NULL after likes " );
if ( ! ( $r1 && $r2 ))
return UPDATE_FAILED ;
return UPDATE_SUCCESS ;
}
2012-06-26 05:55:27 +02:00
function update_1150 () {
$r = q ( " ALTER TABLE event ADD summary text NOT NULL after finish, add index ( uid ), add index ( cid ), add index ( uri ), add index ( `start` ), add index ( finish ), add index ( `type` ), add index ( adjust ) " );
if ( ! $r )
return UPDATE_FAILED ;
return UPDATE_SUCCESS ;
}
2012-06-15 04:58:25 +02:00
function update_1151 () {
2012-06-17 19:25:36 +02:00
$r = q ( " CREATE TABLE IF NOT EXISTS locks (
2012-06-15 04:58:25 +02:00
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
2012-06-17 19:25:36 +02:00
name CHAR ( 128 ) NOT NULL ,
locked TINYINT ( 1 ) NOT NULL DEFAULT '0'
2012-06-15 04:58:25 +02:00
) ENGINE = MYISAM DEFAULT CHARSET = utf8 " );
if ( ! $r )
return UPDATE_FAILED ;
return UPDATE_SUCCESS ;
}
2012-07-06 02:59:56 +02:00
function update_1152 () {
$r = q ( " CREATE TABLE IF NOT EXISTS `term` (
`tid` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`oid` INT UNSIGNED NOT NULL ,
`otype` TINYINT ( 3 ) UNSIGNED NOT NULL ,
`type` TINYINT ( 3 ) UNSIGNED NOT NULL ,
`term` CHAR ( 255 ) NOT NULL ,
2014-09-07 17:28:38 +02:00
`url` CHAR ( 255 ) NOT NULL ,
2012-07-06 02:59:56 +02:00
KEY `oid` ( `oid` ),
KEY `otype` ( `otype` ),
KEY `type` ( `type` ),
KEY `term` ( `term` )
) ENGINE = MYISAM DEFAULT CHARSET = utf8 " );
if ( ! $r )
return UPDATE_FAILED ;
return UPDATE_SUCCESS ;
}
2012-07-24 01:21:02 +02:00
function update_1153 () {
$r = q ( " ALTER TABLE `hook` ADD `priority` INT(11) UNSIGNED NOT NULL DEFAULT '0' " );
2014-09-07 17:28:38 +02:00
2012-07-24 01:21:02 +02:00
if ( ! $r ) return UPDATE_FAILED ;
return UPDATE_SUCCESS ;
}
2012-09-13 04:35:28 +02:00
function update_1154 () {
$r = q ( " ALTER TABLE `event` ADD `ignore` TINYINT( 1 ) UNSIGNED NOT NULL DEFAULT '0' AFTER `adjust` , ADD INDEX ( `ignore` ) " );
if ( ! $r ) return UPDATE_FAILED ;
return UPDATE_SUCCESS ;
}
2012-09-17 10:34:05 +02:00
function update_1155 () {
$r1 = q ( " ALTER TABLE `item_id` DROP PRIMARY KEY " );
$r2 = q ( " ALTER TABLE `item_id` ADD `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST " );
$r3 = q ( " ALTER TABLE `item_id` ADD INDEX ( `iid` ) " );
if ( $r1 && $r2 && $r3 )
return UPDATE_SUCCESS ;
return UPDATE_FAILED ;
}
2012-11-26 04:34:54 +01:00
function update_1156 () {
$r = q ( " ALTER TABLE `photo` ADD `datasize` INT UNSIGNED NOT NULL DEFAULT '0' AFTER `width` ,
ADD INDEX ( `datasize` ) " );
if ( ! $r ) return UPDATE_FAILED ;
return UPDATE_SUCCESS ;
}
2013-01-11 01:20:16 +01:00
function update_1157 () {
2013-01-12 14:52:15 +01:00
$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_SUCCESS ;
}
2013-01-28 01:52:44 +01:00
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 );
2013-01-12 14:52:15 +01:00
if ( $r )
return UPDATE_SUCCESS ;
return UPDATE_FAILED ;
}
2013-01-20 14:07:57 +01:00
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` ) " );
2013-02-17 12:35:40 +01:00
if ( ! $r )
return UPDATE_FAILED ;
2013-01-20 14:07:57 +01:00
return UPDATE_SUCCESS ;
}
function update_1160 () {
2013-02-17 12:35:40 +01:00
set_config ( 'system' , 'maintenance' , 1 );
// Wait for 15 seconds for current requests to
// clear before locking up the database
sleep ( 15 );
2013-01-13 09:37:15 +01:00
$r = q ( " ALTER TABLE `item` ADD `mention` TINYINT(1) NOT NULL DEFAULT '0', ADD INDEX (`mention`) " );
2013-02-17 12:35:40 +01:00
set_config ( 'system' , 'maintenance' , 0 );
if ( ! $r )
return UPDATE_FAILED ;
2013-01-13 09:37:15 +01:00
return UPDATE_SUCCESS ;
}
2013-02-17 18:05:30 +01:00
function update_1161 () {
$r = q ( " ALTER TABLE `pconfig` ADD INDEX (`cat`) " );
if ( ! $r )
return UPDATE_FAILED ;
return UPDATE_SUCCESS ;
}
2013-02-22 13:26:11 +01:00
function update_1162 () {
require_once ( 'include/tags.php' );
update_items ();
2013-11-02 10:49:44 +01:00
return UPDATE_SUCCESS ;
2013-02-22 13:26:11 +01:00
}
2013-10-25 23:33:53 +02:00
function update_1163 () {
set_config ( 'system' , 'maintenance' , 1 );
2014-09-07 17:28:38 +02:00
$r = q ( " ALTER TABLE `item` ADD `network` char(32) NOT NULL " );
2013-10-25 23:33:53 +02:00
set_config ( 'system' , 'maintenance' , 0 );
if ( ! $r )
return UPDATE_FAILED ;
return UPDATE_SUCCESS ;
}
2013-11-02 10:49:44 +01:00
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 ;
}
2013-11-17 15:16:25 +01:00
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 ;
}
2013-12-15 23:00:47 +01:00
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 ;
}
2014-01-05 16:10:02 +01:00
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 ;
}
2014-03-09 09:19:14 +01:00
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' ,
2014-03-16 17:12:56 +01:00
`contact-id` int ( 11 ) unsigned NOT NULL DEFAULT '0' ,
2014-03-09 09:19:14 +01:00
`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` ),
2014-03-16 17:12:56 +01:00
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` )
2014-03-09 09:19:14 +01:00
) ENGINE = MyISAM DEFAULT CHARSET = utf8 ; " );
if ( ! $r )
return UPDATE_FAILED ;
proc_run ( 'php' , " include/threadupdate.php " );
return UPDATE_SUCCESS ;
}
2014-08-27 04:18:19 +02:00
2014-09-04 02:29:12 +02:00
/*
==========
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 .
*/
2015-01-26 01:07:15 +01:00
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 " ])
);
}
}
2015-02-08 16:03:23 +01:00
function update_1178 () {
2015-02-08 20:35:40 +01:00
if ( get_config ( 'system' , 'no_community_page' ))
set_config ( 'system' , 'community_page_style' , CP_NO_COMMUNITY_PAGE );
2015-02-08 16:03:23 +01:00
// Update the central item storage with uid=0
proc_run ( 'php' , " include/threadupdate.php " );
return UPDATE_SUCCESS ;
}
2015-03-07 21:24:39 +01:00
function update_1180 () {
// Fill the new fields in the term table.
proc_run ( 'php' , " include/tagupdate.php " );
return UPDATE_SUCCESS ;
}
2015-10-17 15:26:11 +02:00
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 ;
}
2015-11-11 23:39:14 +01:00
function update_1190 () {
2015-11-12 16:42:27 +01:00
require_once ( 'include/plugin.php' );
set_config ( 'system' , 'maintenance' , 1 );
2015-11-11 23:39:14 +01:00
if ( plugin_enabled ( 'forumlist' )) {
$plugin = 'forumlist' ;
$plugins = get_config ( 'system' , 'addon' );
$plugins_arr = array ();
2015-11-12 16:42:27 +01:00
2015-11-11 23:39:14 +01:00
if ( $plugins ) {
2015-11-12 16:42:27 +01:00
$plugins_arr = explode ( " , " , str_replace ( " " , " " , $plugins ));
2015-11-11 23:39:14 +01:00
$idx = array_search ( $plugin , $plugins_arr );
if ( $idx !== false ){
unset ( $plugins_arr [ $idx ]);
2015-11-13 00:16:39 +01:00
//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' " );
2015-11-12 16:42:27 +01:00
set_config ( 'system' , 'addon' , implode ( " , " , $plugins_arr ));
2015-11-11 23:39:14 +01:00
}
}
}
2015-11-12 16:42:27 +01:00
// select old formlist addon entries
$r = q ( " SELECT `uid`, `cat`, `k`, `v` FROM `pconfig` WHERE `cat` = '%s' " ,
2015-11-11 23:39:14 +01:00
dbesc ( 'forumlist' )
2015-11-11 23:40:26 +01:00
);
2015-11-11 23:39:14 +01:00
2015-11-12 16:42:27 +01:00
// 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' ];
2015-11-11 23:39:14 +01:00
2015-11-12 16:42:27 +01:00
if ( $key === 'randomise' )
del_pconfig ( $uid , $family , $key );
2015-11-11 23:39:14 +01:00
2015-11-12 16:42:27 +01:00
if ( $key === 'show_on_profile' ) {
if ( $value )
set_pconfig ( $uid , feature , forumlist_profile , $value );
2015-11-11 23:39:14 +01:00
2015-11-12 16:42:27 +01:00
del_pconfig ( $uid , $family , $key );
}
2015-11-11 23:39:14 +01:00
2015-11-12 16:42:27 +01:00
if ( $key === 'show_on_network' ) {
if ( $value )
set_pconfig ( $uid , feature , forumlist_widget , $value );
2015-11-11 23:39:14 +01:00
2015-11-12 16:42:27 +01:00
del_pconfig ( $uid , $family , $key );
}
2015-11-11 23:39:14 +01:00
}
}
2015-11-12 16:42:27 +01:00
set_config ( 'system' , 'maintenance' , 0 );
return UPDATE_SUCCESS ;
2015-11-11 23:39:14 +01:00
}