2010-09-09 03:14:17 +00:00
< ? php
2012-06-26 03:55:27 +00:00
define ( 'UPDATE_VERSION' , 1151 );
2011-06-03 08:16:17 +00:00
2010-12-10 04:41:42 +00: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 .
*
* Each function in this file is named update_nnnn () where nnnn is an increasing number
* which began counting at 1000.
*
2011-03-10 00:57:22 +00: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 04:41:42 +00:00
* to the database schema or one which requires an upgrade path from the existing application ,
2011-06-29 06:20:58 +00:00
* the DB_UPDATE_VERSION and the UPDATE_VERSION at the top of this file are incremented .
2010-12-10 04:41:42 +00:00
*
2011-03-10 00:57:22 +00:00
* 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
2010-12-10 04:41:42 +00:00
* up to current without requiring re - installation or manual intervention .
*
2011-03-10 00:57:22 +00:00
* 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 .
2010-12-10 04:41:42 +00:00
*
* If you change the database schema , the following are required :
* 1. Update the file database . sql to match the new schema .
2011-03-10 00:57:22 +00:00
* 2. Update this file by adding a new function at the end with the number of the current DB_UPDATE_VERSION .
2010-12-10 04:41:42 +00:00
* 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 .
2011-06-03 08:16:17 +00:00
* 3. Increment the DB_UPDATE_VERSION in boot . php * AND * the UPDATE_VERSION in this file to match it
2010-12-10 04:41:42 +00:00
* 4. TEST the upgrade prior to checkin and filing a pull request .
*
*/
2010-09-10 01:49:19 +00:00
function update_1000 () {
2010-09-09 03:14:17 +00: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` " );
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` " );
2010-09-10 01:49:19 +00:00
}
function update_1001 () {
q ( " ALTER TABLE `item` ADD `wall` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `type` " );
2010-09-10 02:20:35 +00:00
q ( " ALTER TABLE `item` ADD INDEX ( `wall` ) " );
2010-09-10 01:49:19 +00:00
}
2010-09-10 05:02:28 +00:00
function update_1002 () {
q ( " ALTER TABLE `item` ADD `gravity` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `wall` " );
}
2010-10-01 02:41:22 +00: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` " );
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` ) " );
2010-10-01 04:00:06 +00:00
}
function update_1004 () {
q ( " ALTER TABLE `contact` ADD `subhub` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `usehub` " );
2010-10-12 06:22:38 +00: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 08:14:50 +00: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'
WHERE `uid` = % d LIMIT 1 " ,
dbesc ( $spubkey ),
dbesc ( $sprvkey ),
intval ( $rr [ 'uid' ])
);
}
}
}
2010-10-17 05:11:21 +00:00
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` ) " );
2010-10-20 00:15:00 +00:00
}
function update_1008 () {
q ( " ALTER TABLE `profile` ADD `with` TEXT NOT NULL AFTER `marital` " );
2010-10-20 00:30:15 +00:00
}
function update_1009 () {
2010-10-20 00:33:22 +00:00
q ( " ALTER TABLE `user` ADD `allow_location` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `default-location` " );
2010-10-21 11:53:43 +00:00
}
function update_1010 () {
q ( " ALTER TABLE `contact` ADD `lrdd` CHAR( 255 ) NOT NULL AFTER `url` " );
}
2010-10-23 08:20:26 +00: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 ) {
q ( " UPDATE `contact` SET `nick` = '%s' WHERE `id` = %d LIMIT 1 " ,
dbesc ( basename ( $rr [ 'url' ])),
intval ( $rr [ 'id' ])
);
}
}
2010-11-01 03:36:59 +00:00
}
function update_1012 () {
q ( " ALTER TABLE `item` ADD `inform` MEDIUMTEXT NOT NULL AFTER `tag` " );
2010-11-03 23:48:21 +00:00
}
function update_1013 () {
q ( " ALTER TABLE `item` ADD `target-type` CHAR( 255 ) NOT NULL
AFTER `object` , ADD `target` TEXT NOT NULL AFTER `target-type` " );
2010-11-05 06:50:32 +00: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 )) {
foreach ( $r as $rr ) {
if ( stristr ( $rr [ 'thumb' ], 'avatar' ))
q ( " UPDATE `contact` SET `micro` = '%s' WHERE `id` = %d LIMIT 1 " ,
dbesc ( str_replace ( 'avatar' , 'micro' , $rr [ 'thumb' ])),
intval ( $rr [ 'id' ]));
else
q ( " UPDATE `contact` SET `micro` = '%s' WHERE `id` = %d LIMIT 1 " ,
dbesc ( str_replace ( '5.jpg' , '6.jpg' , $rr [ 'thumb' ])),
intval ( $rr [ 'id' ]));
}
}
2010-11-07 11:16:58 +00:00
}
function update_1015 () {
q ( " ALTER TABLE `item` CHANGE `body` `body` mediumtext NOT NULL " );
2010-11-14 23:17:27 +00:00
}
function update_1016 () {
q ( " ALTER TABLE `user` ADD `openid` CHAR( 255 ) NOT NULL AFTER `email` " );
}
2010-11-22 03:10:23 +00: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 07:00:01 +00: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 00:08:48 +00:00
function update_1019 () {
q ( " ALTER TABLE `mail` DROP `delivered` " );
2010-12-03 07:04:28 +00:00
q ( " ALTER TABLE `profile` ADD `showwith` TINYINT(1) NOT NULL DEFAULT '0' AFTER `marital` " );
}
2010-12-05 07:16:16 +00: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 02:13:51 +00: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 22:15:31 +00: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 00:35:45 +00: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 01:46:26 +00:00
function update_1024 () {
q ( " ALTER TABLE `profile` ADD `keywords` TEXT NOT NULL AFTER `religion` " );
}
2010-12-20 08:27:00 +00:00
function update_1025 () {
q ( " ALTER TABLE `user` ADD `maxreq` int(11) NOT NULL DEFAULT '10' AFTER `pwdreset` " );
}
2010-12-21 03:38:34 +00: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 22:16:22 +00: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 ,
`installed` TINYINT ( 1 ) NOT NULL DEFAULT '0'
) ENGINE = MYISAM DEFAULT CHARSET = utf8 " );
}
2010-12-23 22:40:32 +00:00
function update_1028 () {
q ( " ALTER TABLE `user` ADD `openidserver` text NOT NULL AFTER `deny_gid` " );
}
2010-12-28 09:06:34 +00:00
function update_1029 () {
q ( " ALTER TABLE `contact` ADD `info` MEDIUMTEXT NOT NULL AFTER `reason` " );
}
2011-01-13 10:01:00 +00: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 10:08:57 +00:00
}
2011-01-18 00:28:32 +00: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' )) {
q ( " UPDATE `item` SET `object` = '%s' WHERE `id` = %d LIMIT 1 " ,
dbesc ( str_replace ( 'type="http' , 'href="http' , $rr [ 'object' ])),
intval ( $rr [ 'id' ])
);
}
}
}
}
2011-01-19 03:25:28 +00:00
function update_1032 () {
q ( " ALTER TABLE `profile` ADD `pdesc` CHAR( 255 ) NOT NULL AFTER `name` " );
}
2011-01-31 16:10:36 +00: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 04:53:39 +00:00
) ENGINE = MYISAM DEFAULT CHARSET = utf8 " );
2011-01-31 16:10:36 +00:00
}
2011-02-06 10:33:02 +00:00
function update_1034 () {
// 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
// pull from the hub.
// 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 " );
}
2011-02-06 23:50:50 +00: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 03:15:20 +00:00
}
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 " ,
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 02:44:30 +00: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 11:13:38 +00:00
function update_1038 () {
q ( " ALTER TABLE `item` ADD `plink` CHAR( 255 ) NOT NULL AFTER `target` " );
}
2011-03-09 10:12:32 +00:00
function update_1039 () {
q ( " ALTER TABLE `addon` ADD `timestamp` BIGINT NOT NULL DEFAULT '0' " );
2011-03-09 10:17:08 +00:00
}
2011-03-14 04:53:39 +00: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 07:28:49 +00: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 00:31:49 +00:00
}
function update_1042 () {
q ( " ALTER TABLE `user` ADD `expire` INT UNSIGNED NOT NULL DEFAULT '0' AFTER `maxreq` " );
}
2011-03-21 00:54:50 +00:00
function update_1043 () {
q ( " ALTER TABLE `user` ADD `blockwall` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `blocked` " );
}
2011-03-22 23:34:12 +00:00
function update_1044 () {
q ( " ALTER TABLE `profile` ADD FULLTEXT ( `pub_keywords` ) " );
q ( " ALTER TABLE `profile` ADD FULLTEXT ( `prv_keywords` ) " );
}
2011-04-01 21:49:15 +00:00
function update_1045 () {
q ( " ALTER TABLE `user` ADD `language` CHAR( 16 ) NOT NULL DEFAULT 'en' AFTER `timezone` " );
}
2011-04-07 02:41:16 +00:00
function update_1046 () {
q ( " ALTER TABLE `item` ADD `attach` MEDIUMTEXT NOT NULL AFTER `tag` " );
}
2011-04-11 01:38:55 +00:00
function update_1047 () {
q ( " ALTER TABLE `contact` ADD `writable` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `readonly` " );
}
2011-04-12 03:11:21 +00:00
function update_1048 () {
q ( " UPDATE `contact` SET `writable` = 1 WHERE `network` = 'stat' AND `notify` != '' " );
}
2011-04-12 04:30:50 +00:00
function update_1049 () {
q ( " CREATE TABLE `mailacct` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
2011-04-12 04:34:22 +00:00
`uid` INT NOT NULL ,
2011-04-12 04:30:50 +00: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 04:36:04 +00:00
}
2011-04-13 08:18:15 +00: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 06:40:43 +00: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 15:45:08 +00:00
function update_1052 () {
q ( " ALTER TABLE `mailacct` CHANGE `pass` `pass` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL " );
2011-04-18 06:27:11 +00: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 15:45:08 +00:00
}
2011-04-27 11:24:00 +00:00
function update_1053 () {
q ( " ALTER TABLE `item` ADD `extid` CHAR( 255 ) NOT NULL AFTER `parent-uri` , ADD INDEX ( `extid` ) " );
}
2011-05-24 03:30:37 +00:00
function update_1054 () {
q ( " ALTER TABLE `register` ADD `language` CHAR( 16 ) NOT NULL AFTER `password` " );
}
2011-05-24 23:30:52 +00:00
function update_1055 () {
q ( " ALTER TABLE `profile` ADD `hidewall` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `hide-friends` " );
2011-05-25 05:40:52 +00:00
}
function update_1056 () {
q ( " ALTER TABLE `attach` ADD `hash` CHAR( 64 ) NOT NULL AFTER `uid` " );
}
2011-05-25 09:08:15 +00:00
function update_1057 () {
q ( " ALTER TABLE `attach` ADD `filename` CHAR( 255 ) NOT NULL AFTER `hash` " );
}
2011-05-28 01:47:28 +00:00
function update_1058 () {
q ( " ALTER TABLE `item` ADD `event-id` INT NOT NULL AFTER `resource-id` " );
}
2011-06-03 08:16:17 +00:00
function update_1059 () {
q ( " ALTER TABLE `queue` ADD `network` CHAR( 32 ) NOT NULL AFTER `cid` " );
}
2011-06-06 06:10:07 +00:00
function update_1060 () {
q ( " ALTER TABLE `event` ADD `uri` CHAR( 255 ) NOT NULL AFTER `cid` " );
}
2011-06-08 03:10:43 +00:00
function update_1061 () {
q ( " ALTER TABLE `event` ADD `nofinish` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `type` " );
}
2011-06-09 04:06:02 +00:00
function update_1062 () {
q ( " ALTER TABLE `user` ADD `prvnets` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `page-flags` " );
}
2011-06-19 13:42:06 +00:00
function update_1063 () {
q ( " ALTER TABLE `addon` ADD `plugin_admin` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `timestamp` " );
}
2011-06-09 04:06:02 +00:00
2011-06-21 02:08:40 +00:00
function update_1064 () {
q ( " ALTER TABLE `item` ADD `app` CHAR( 255 ) NOT NULL AFTER `body` " );
}
2011-06-22 01:03:54 +00:00
function update_1065 () {
q ( " ALTER TABLE `intro` ADD `fid` INT NOT NULL DEFAULT '0' AFTER `uid` " );
}
2011-06-24 00:56:59 +00: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 12:42:32 +00: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 00:57:23 +00: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 ,
`created` DATETIME NOT NULL
) ENGINE = MYISAM DEFAULT CHARSET = utf8 " );
}
2011-06-27 02:30:57 +00: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 02:02:11 +00: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 05:36:33 +00: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 00:56:57 +00: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 02:55:09 +00:00
function update_1073 () {
q ( " ALTER TABLE `contact` ADD `remote_self` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `self` " );
}
2011-07-06 06:23:43 +00: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 )
q ( " UPDATE `user` SET `hidewall` = 1 WHERE `uid` = %d LIMIT 1 " ,
intval ( $rr [ 'uid' ])
);
}
q ( " ALTER TABLE `profile` DROP `hidewall` " );
}
2011-07-19 01:13:46 +00: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 );
q ( " UPDATE `user` SET `guid` = '%s' WHERE `uid` = %d LIMIT 1 " ,
dbesc ( $guid ),
intval ( $rr [ 'uid' ])
);
}
}
2011-08-04 05:05:20 +00:00
}
function update_1076 () {
2011-08-07 23:15:54 +00: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
2011-08-07 23:24:20 +00:00
// 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
2011-08-07 23:15:54 +00:00
function update_1077 () {
q ( " CREATE TABLE IF NOT EXISTS `guid` ( `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
2011-08-04 05:05:20 +00:00
`guid` CHAR ( 16 ) NOT NULL , INDEX ( `guid` ) ) ENGINE = MYISAM " );
2011-08-07 23:24:20 +00:00
q ( " ALTER TABLE `guid` CHANGE `guid` `guid` CHAR( 64 ) NOT NULL " );
2011-08-04 05:05:20 +00:00
}
2011-08-08 00:29:26 +00:00
function update_1078 () {
q ( " ALTER TABLE `item` ADD `guid` CHAR( 64 ) NOT NULL AFTER `id` , ADD INDEX ( `guid` ) " );
}
2011-08-18 03:52:18 +00: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 ,
ADD INDEX ( `addr` ) ,
ADD INDEX ( `network` ) " );
}
2011-08-18 11:20:30 +00:00
function update_1080 () {
q ( " ALTER TABLE `fcontact` ADD `updated` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' " );
2011-08-24 01:17:35 +00:00
}
function update_1081 () {
2011-08-27 04:51:12 +00:00
// there was a typo in update 1081 so it was corrected and moved up to 1082
}
function update_1082 () {
2011-08-27 04:37:00 +00:00
q ( " ALTER TABLE `photo` ADD `guid` CHAR( 64 ) NOT NULL AFTER `contact-id`,
2011-08-24 01:17:35 +00:00
ADD INDEX ( `guid` ) " );
2011-08-27 04:51:12 +00: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 01:17:35 +00: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 04:41:42 +00: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 00:35:06 +00:00
) ENGINE = MYISAM " );
2011-08-29 04:41:42 +00:00
2011-09-02 01:02:08 +00:00
}
function update_1084 () {
q ( " ALTER TABLE `contact` ADD `attag` CHAR( 255 ) NOT NULL AFTER `nick` " );
}
2011-09-05 00:35:06 +00: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 02:58:03 +00:00
function update_1086 () {
q ( " ALTER TABLE `item` ADD `bookmark` tinyint(1) NOT NULL DEFAULT '0' AFTER `starred` " );
}
2011-09-19 02:04:11 +00: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 ))
q ( " UPDATE `item` SET `commented` = '%s' WHERE `id` = %d LIMIT 1 " ,
dbesc ( $x [ 0 ][ 'cdate' ]),
intval ( $rr [ 'id' ])
);
}
}
}
2011-09-19 02:53:45 +00: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 05:42:47 +00:00
function update_1089 () {
q ( " ALTER TABLE `user` ADD `blocktags` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `hidewall` " );
}
2011-09-20 08:49:08 +00: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 11:11:39 +00: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 04:20:19 +00:00
function update_1092 () {
q ( " ALTER TABLE `user` ADD INDEX ( `login_date` ) " );
q ( " ALTER TABLE `user` ADD INDEX ( `account_expired` ) " );
2011-10-02 06:19:20 +00: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 01:24:37 +00:00
}
function update_1094 () {
q ( " ALTER TABLE `item` ADD `postopts` TEXT NOT NULL AFTER `target` " );
}
2011-10-14 07:20:37 +00:00
function update_1095 () {
q ( " ALTER TABLE `contact` ADD `bd` DATE NOT NULL AFTER `bdyear` " );
}
2011-10-15 10:26:37 +00:00
function update_1096 () {
q ( " ALTER TABLE `item` ADD `origin` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `deleted` , ADD INDEX ( `origin` ) " );
}
2011-10-22 08:29:26 +00:00
function update_1097 () {
q ( " ALTER TABLE `queue`
ADD INDEX ( `cid` ),
ADD INDEX ( `created` ),
ADD INDEX ( `last` ),
ADD INDEX ( `network` ),
2011-10-26 22:14:12 +00:00
ADD INDEX ( `batch` )
" );
2011-10-22 08:29:26 +00:00
}
2011-10-15 10:26:37 +00:00
2011-10-26 22:14:12 +00:00
function update_1098 () {
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` )
" );
}
2011-11-01 03:39:04 +00: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 04:39:21 +00:00
`updated` DATETIME NOT NULL
2011-11-01 03:39:04 +00: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-26 22:14:12 +00:00
2011-11-01 03:39:04 +00:00
q ( " ALTER TABLE `contact` ADD `poco` TEXT NOT NULL AFTER `confirm` " );
2011-10-26 22:14:12 +00:00
2011-11-01 03:39:04 +00:00
}
2011-10-26 22:14:12 +00:00
2011-11-01 23:08:07 +00: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 ) {
q ( " update contact set nurl = '%s' where id = %d limit 1 " ,
dbesc ( normalise_link ( $rr [ 'url' ])),
intval ( $rr [ 'id' ])
);
}
}
}
2011-10-26 22:14:12 +00:00
2011-11-03 23:00:52 +00: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 16:48:14 +00:00
function update_1102 () {
2011-11-07 17:41:22 +00:00
q ( " ALTER TABLE `clients` ADD `name` TEXT NULL DEFAULT NULL AFTER `redirect_uri` " );
2011-11-07 16:48:14 +00:00
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-03 23:00:52 +00:00
2011-11-07 16:48:14 +00:00
q ( " ALTER TABLE `tokens` ADD `secret` TEXT NOT NULL AFTER `id` " );
q ( " ALTER TABLE `tokens` ADD `uid` INT NOT NULL AFTER `scope` " );
}
2011-10-26 22:14:12 +00:00
2011-11-16 07:14:25 +00:00
function update_1103 () {
2011-11-24 07:17:26 +00:00
// q("ALTER TABLE `item` ADD INDEX ( `wall` ) ");
2011-11-16 07:14:25 +00:00
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` ) " );
q ( " ALTER TABLE `user` ADD INDEX ( `blocked` ) " );
q ( " ALTER TABLE `user` ADD INDEX ( `verified` ) " );
2011-10-26 22:14:12 +00:00
2011-11-16 07:14:25 +00:00
}
2011-10-26 22:14:12 +00:00
2011-11-19 05:55:00 +00: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 01:41:23 +00: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 05:55:00 +00:00
2011-11-29 22:35:20 +00:00
function update_1106 () {
q ( " ALTER TABLE `item` ADD INDEX ( `author-link` ) " );
}
2011-12-03 21:53:49 +00:00
function update_1107 () {
q ( " ALTER TABLE `item` ADD INDEX ( `bookmark` ) " );
}
2011-12-05 10:16:59 +00:00
function update_1108 () {
q ( " ALTER TABLE `contact` ADD `hidden` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `writable` ,
ADD INDEX ( `hidden` ) " );
2011-10-26 22:14:12 +00:00
2011-12-05 10:16:59 +00:00
}
2011-12-06 08:16:13 +00: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 03:15:42 +00: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 08:50:17 +00:00
function update_1111 () {
q ( " ALTER TABLE `gcontact` ADD `connect` CHAR( 255 ) NOT NULL " );
}
2012-01-01 08:39:22 +00: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 06:44:03 +00:00
}
function update_1113 () {
q ( " ALTER TABLE `notify` ADD `verb` CHAR( 255 ) NOT NULL ,
ADD `otype` CHAR ( 16 ) NOT NULL " );
}
2012-01-04 04:26:20 +00: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 04:56:11 +00:00
function update_1115 () {
2012-01-25 08:30:36 +00:00
q ( " ALTER TABLE `item` ADD `moderated`
TINYINT ( 1 ) NOT NULL DEFAULT '0' AFTER `pubmail` ,
2012-01-24 04:56:11 +00:00
ADD INDEX ( `moderated` ) " );
2012-01-25 08:30:36 +00:00
}
2012-01-27 00:52:12 +00:00
function update_1116 () {
2012-01-27 07:56:47 +00:00
//typo! corrected update was rolled forward
}
function update_1117 () {
q ( " create table if not exists `manage` (
2012-01-27 00:52:12 +00: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 07:54:53 +00:00
function update_1118 () {
2012-02-05 22:30:24 +00:00
// rolled forward
2012-02-01 07:54:53 +00:00
}
2012-02-02 02:50:11 +00:00
function update_1119 () {
2012-02-05 22:30:24 +00: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 02:50:11 +00:00
q ( " ALTER TABLE `item` ADD `spam` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `visible` , ADD INDEX (`spam`) " );
}
2012-02-10 21:43:35 +00: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 02:02:43 +00: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 03:50:05 +00:00
function update_1122 () {
q ( " ALTER TABLE `notify` ADD `hash` CHAR( 64 ) NOT NULL AFTER `id` ,
ADD INDEX ( `hash` ) " );
2012-02-24 04:29:09 +00:00
}
function update_1123 () {
set_config ( 'system' , 'allowed_themes' , 'dispy,quattro,testbubble,vier,darkbubble,darkzero,duepuntozero,greenzero,purplezero,quattro-green,slackr' );
}
2012-02-25 04:40:09 +00:00
function update_1124 () {
q ( " alter table item add index (`author-name`) " );
2012-02-25 21:06:06 +00: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 22:39:29 +00: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 02:53:48 +00: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 07:27:16 +00: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 02:19:08 +00: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 08:09:10 +00:00
}
function update_1130 () {
q ( " ALTER TABLE `item` ADD `file` MEDIUMTEXT NOT NULL AFTER `inform`, ADD FULLTEXT KEY (`file`) " );
}
2012-03-15 23:38:26 +00:00
function update_1131 () {
q ( " ALTER TABLE `contact` ADD `forum` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `writable` , ADD INDEX ( `forum` ) " );
}
2012-03-22 08:46:52 +00:00
function update_1132 () {
q ( " CREATE TABLE IF NOT EXISTS `userd` (
2012-03-15 11:55:49 +00:00
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
2012-03-22 08:46:52 +00:00
`username` CHAR ( 255 ) NOT NULL ,
INDEX ( `username` )
) ENGINE = MYISAM " );
2012-03-15 10:45:06 +00:00
}
2012-04-05 11:27:09 +00:00
function update_1133 () {
2012-06-01 01:40:12 +00: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 11:39:15 +00:00
q ( " ALTER TABLE `mail` ADD `unknown` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `replied` , ADD INDEX ( `unknown` ) " );
}
function update_1134 () {
2012-04-06 10:25:01 +00:00
// faulty update merged forward
// had a hardwired tablename of 'friendica' which isn't the right name on most systems
}
function update_1135 () {
2012-04-05 11:27:09 +00:00
//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 " );
//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 " );
2012-04-06 12:11:09 +00:00
// 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.
}
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 ;
q ( " delete from config where id = %d limit 1 " ,
intval ( $rr [ 'id' ])
);
}
}
if ( ! $found ) {
$arr [] = $rr ;
}
}
}
$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 ;
q ( " delete from pconfig where id = %d limit 1 " ,
intval ( $rr [ 'id' ])
);
}
}
if ( ! $found ) {
$arr [] = $rr ;
}
}
}
q ( " ALTER TABLE `config` ADD UNIQUE `access` ( `cat` , `k` ) " );
2012-04-06 10:25:01 +00:00
q ( " ALTER TABLE `pconfig` ADD UNIQUE `access` ( `uid` , `cat` , `k` ) " );
2012-04-06 12:11:09 +00:00
2012-04-11 23:13:57 +00: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-27 23:46:28 +00:00
function update_1138 () {
q ( " alter table contact add archive tinyint(1) not null default '0' after hidden, add index (archive) " );
2012-04-29 08:08:28 +00: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 06:07:52 +00: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 08:16:47 +00: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 08:45:57 +00: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 05:44:52 +00: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 05:57:15 +00: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 09:30:26 +00: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 03:58:20 +00: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 20:52:42 +00:00
function update_1147 () {
2012-06-02 22:11:31 +00:00
$r1 = q ( " ALTER TABLE `sign` ALTER `iid` SET DEFAULT '0' " );
2012-06-01 15:07:51 +00:00
$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` ) " );
if (( ! $r1 ) || ( ! $r2 ) || ( ! $r3 ))
return UPDATE_FAILED ;
return UPDATE_SUCCESS ;
}
2012-06-02 09:30:26 +00:00
2012-06-07 15:42:13 +00: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 04:16:55 +00: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 03:55:27 +00: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 02:58:25 +00:00
function update_1151 () {
2012-06-17 17:25:36 +00:00
$r = q ( " CREATE TABLE IF NOT EXISTS locks (
2012-06-15 02:58:25 +00:00
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
2012-06-17 17:25:36 +00:00
name CHAR ( 128 ) NOT NULL ,
locked TINYINT ( 1 ) NOT NULL DEFAULT '0'
2012-06-15 02:58:25 +00:00
) ENGINE = MYISAM DEFAULT CHARSET = utf8 " );
if ( ! $r )
return UPDATE_FAILED ;
return UPDATE_SUCCESS ;
}