From d90b93cfda090c0704ad773fff27ca98af8e968a Mon Sep 17 00:00:00 2001
From: Michael <heluecht@pirati.ca>
Date: Tue, 20 Feb 2018 07:40:21 +0000
Subject: [PATCH] Several more improvements to the database structure

---
 database.sql                 | 1086 +---------------------------------
 src/Database/DBStructure.php |  358 +++++------
 2 files changed, 185 insertions(+), 1259 deletions(-)

diff --git a/database.sql b/database.sql
index cbce9a5b7e..8db85085ee 100644
--- a/database.sql
+++ b/database.sql
@@ -1,1081 +1,7 @@
--- ------------------------------------------
--- Friendica 3.6-dev (Asparagus)
--- DB_UPDATE_VERSION 1254
--- ------------------------------------------
-
-
---
--- TABLE addon
---
-CREATE TABLE IF NOT EXISTS `addon` (
-	`id` int NOT NULL auto_increment COMMENT '',
-	`name` varbinary(190) NOT NULL DEFAULT '' COMMENT '',
-	`version` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`installed` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`hidden` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`timestamp` bigint NOT NULL DEFAULT 0 COMMENT '',
-	`plugin_admin` boolean NOT NULL DEFAULT '0' COMMENT '',
-	 PRIMARY KEY(`id`),
-	 UNIQUE INDEX `name` (`name`)
-) DEFAULT COLLATE utf8mb4_general_ci;
-
---
--- TABLE attach
---
-CREATE TABLE IF NOT EXISTS `attach` (
-	`id` int NOT NULL auto_increment COMMENT '',
-	`uid` mediumint NOT NULL DEFAULT 0 COMMENT 'User id',
-	`hash` varchar(64) NOT NULL DEFAULT '' COMMENT '',
-	`filename` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`filetype` varchar(64) NOT NULL DEFAULT '' COMMENT '',
-	`filesize` int NOT NULL DEFAULT 0 COMMENT '',
-	`data` longblob NOT NULL COMMENT '',
-	`created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '',
-	`edited` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '',
-	`allow_cid` mediumtext COMMENT '',
-	`allow_gid` mediumtext COMMENT '',
-	`deny_cid` mediumtext COMMENT '',
-	`deny_gid` mediumtext COMMENT '',
-	 PRIMARY KEY(`id`)
-) DEFAULT COLLATE utf8mb4_general_ci;
-
---
--- TABLE auth_codes
---
-CREATE TABLE IF NOT EXISTS `auth_codes` (
-	`id` varchar(40) NOT NULL COMMENT '',
-	`client_id` varchar(20) NOT NULL DEFAULT '' COMMENT '',
-	`redirect_uri` varchar(200) NOT NULL DEFAULT '' COMMENT '',
-	`expires` int NOT NULL DEFAULT 0 COMMENT '',
-	`scope` varchar(250) NOT NULL DEFAULT '' COMMENT '',
-	 PRIMARY KEY(`id`)
-) DEFAULT COLLATE utf8mb4_general_ci;
-
---
--- TABLE cache
---
-CREATE TABLE IF NOT EXISTS `cache` (
-	`k` varbinary(255) NOT NULL COMMENT '',
-	`v` mediumtext COMMENT '',
-	`expire_mode` tinyint NOT NULL DEFAULT 0 COMMENT '',
-	`updated` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '',
-	 PRIMARY KEY(`k`),
-	 INDEX `expire_mode_updated` (`expire_mode`,`updated`)
-) DEFAULT COLLATE utf8mb4_general_ci;
-
---
--- TABLE challenge
---
-CREATE TABLE IF NOT EXISTS `challenge` (
-	`id` int NOT NULL auto_increment COMMENT '',
-	`challenge` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`dfrn-id` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`expire` int NOT NULL DEFAULT 0 COMMENT '',
-	`type` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`last_update` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	 PRIMARY KEY(`id`)
-) DEFAULT COLLATE utf8mb4_general_ci;
-
---
--- TABLE clients
---
-CREATE TABLE IF NOT EXISTS `clients` (
-	`client_id` varchar(20) NOT NULL COMMENT '',
-	`pw` varchar(20) NOT NULL DEFAULT '' COMMENT '',
-	`redirect_uri` varchar(200) NOT NULL DEFAULT '' COMMENT '',
-	`name` text COMMENT '',
-	`icon` text COMMENT '',
-	`uid` mediumint NOT NULL DEFAULT 0 COMMENT 'User id',
-	 PRIMARY KEY(`client_id`)
-) DEFAULT COLLATE utf8mb4_general_ci;
-
---
--- TABLE config
---
-CREATE TABLE IF NOT EXISTS `config` (
-	`id` int NOT NULL auto_increment COMMENT '',
-	`cat` varbinary(255) NOT NULL DEFAULT '' COMMENT '',
-	`k` varbinary(255) NOT NULL DEFAULT '' COMMENT '',
-	`v` mediumtext COMMENT '',
-	 PRIMARY KEY(`id`),
-	 UNIQUE INDEX `cat_k` (`cat`,`k`)
-) DEFAULT COLLATE utf8mb4_general_ci;
-
---
--- TABLE contact
---
-CREATE TABLE IF NOT EXISTS `contact` (
-	`id` int NOT NULL auto_increment COMMENT '',
-	`uid` mediumint NOT NULL DEFAULT 0 COMMENT 'User id',
-	`created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '',
-	`self` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`remote_self` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`rel` tinyint NOT NULL DEFAULT 0 COMMENT '',
-	`duplex` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`network` char(4) NOT NULL DEFAULT '' COMMENT '',
-	`name` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`nick` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`location` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`about` text COMMENT '',
-	`keywords` text COMMENT '',
-	`gender` varchar(32) NOT NULL DEFAULT '' COMMENT '',
-	`xmpp` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`attag` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`avatar` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`photo` text COMMENT '',
-	`thumb` text COMMENT '',
-	`micro` text COMMENT '',
-	`site-pubkey` text COMMENT '',
-	`issued-id` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`dfrn-id` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`url` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`nurl` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`addr` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`alias` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`pubkey` text COMMENT '',
-	`prvkey` text COMMENT '',
-	`batch` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`request` text COMMENT '',
-	`notify` text COMMENT '',
-	`poll` text COMMENT '',
-	`confirm` text COMMENT '',
-	`poco` text COMMENT '',
-	`aes_allow` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`ret-aes` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`usehub` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`subhub` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`hub-verify` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`last-update` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '',
-	`success_update` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '',
-	`failure_update` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '',
-	`name-date` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '',
-	`uri-date` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '',
-	`avatar-date` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '',
-	`term-date` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '',
-	`last-item` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '',
-	`priority` tinyint NOT NULL DEFAULT 0 COMMENT '',
-	`blocked` boolean NOT NULL DEFAULT '1' COMMENT '',
-	`readonly` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`writable` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`forum` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`prv` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`contact-type` tinyint NOT NULL DEFAULT 0 COMMENT '',
-	`hidden` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`archive` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`pending` boolean NOT NULL DEFAULT '1' COMMENT '',
-	`rating` tinyint NOT NULL DEFAULT 0 COMMENT '',
-	`reason` text COMMENT '',
-	`closeness` tinyint NOT NULL DEFAULT 99 COMMENT '',
-	`info` mediumtext COMMENT '',
-	`profile-id` int NOT NULL DEFAULT 0 COMMENT '',
-	`bdyear` varchar(4) NOT NULL DEFAULT '' COMMENT '',
-	`bd` date NOT NULL DEFAULT '0001-01-01' COMMENT '',
-	`notify_new_posts` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`fetch_further_information` tinyint NOT NULL DEFAULT 0 COMMENT '',
-	`ffi_keyword_blacklist` text COMMENT '',
-	 PRIMARY KEY(`id`),
-	 INDEX `uid_name` (`uid`,`name`(190)),
-	 INDEX `self_uid` (`self`,`uid`),
-	 INDEX `alias_uid` (`alias`(32),`uid`),
-	 INDEX `pending_uid` (`pending`,`uid`),
-	 INDEX `blocked_uid` (`blocked`,`uid`),
-	 INDEX `uid_rel_network_poll` (`uid`,`rel`,`network`,`poll`(64),`archive`),
-	 INDEX `uid_network_batch` (`uid`,`network`,`batch`(64)),
-	 INDEX `addr_uid` (`addr`(32),`uid`),
-	 INDEX `nurl_uid` (`nurl`(32),`uid`),
-	 INDEX `nick_uid` (`nick`(32),`uid`),
-	 INDEX `dfrn-id` (`dfrn-id`(64)),
-	 INDEX `issued-id` (`issued-id`(64))
-) DEFAULT COLLATE utf8mb4_general_ci;
-
---
--- TABLE conv
---
-CREATE TABLE IF NOT EXISTS `conv` (
-	`id` int NOT NULL auto_increment COMMENT '',
-	`guid` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`recips` text COMMENT '',
-	`uid` mediumint NOT NULL DEFAULT 0 COMMENT 'User id',
-	`creator` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '',
-	`updated` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '',
-	`subject` text COMMENT '',
-	 PRIMARY KEY(`id`),
-	 INDEX `uid` (`uid`)
-) DEFAULT COLLATE utf8mb4_general_ci;
-
---
--- TABLE conversation
---
-CREATE TABLE IF NOT EXISTS `conversation` (
-	`item-uri` varbinary(255) NOT NULL COMMENT '',
-	`reply-to-uri` varbinary(255) NOT NULL DEFAULT '' COMMENT '',
-	`conversation-uri` varbinary(255) NOT NULL DEFAULT '' COMMENT '',
-	`conversation-href` varbinary(255) NOT NULL DEFAULT '' COMMENT '',
-	`protocol` tinyint NOT NULL DEFAULT 0 COMMENT '',
-	`source` mediumtext COMMENT '',
-	`received` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '',
-	 PRIMARY KEY(`item-uri`),
-	 INDEX `conversation-uri` (`conversation-uri`),
-	 INDEX `received` (`received`)
-) DEFAULT COLLATE utf8mb4_general_ci;
-
---
--- TABLE event
---
-CREATE TABLE IF NOT EXISTS `event` (
-	`id` int NOT NULL auto_increment COMMENT '',
-	`guid` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`uid` mediumint NOT NULL DEFAULT 0 COMMENT 'User id',
-	`cid` int NOT NULL DEFAULT 0 COMMENT '',
-	`uri` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '',
-	`edited` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '',
-	`start` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '',
-	`finish` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '',
-	`summary` text COMMENT '',
-	`desc` text COMMENT '',
-	`location` text COMMENT '',
-	`type` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`nofinish` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`adjust` boolean NOT NULL DEFAULT '1' COMMENT '',
-	`ignore` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`allow_cid` mediumtext COMMENT '',
-	`allow_gid` mediumtext COMMENT '',
-	`deny_cid` mediumtext COMMENT '',
-	`deny_gid` mediumtext COMMENT '',
-	 PRIMARY KEY(`id`),
-	 INDEX `uid_start` (`uid`,`start`)
-) DEFAULT COLLATE utf8mb4_general_ci;
-
---
--- TABLE fcontact
---
-CREATE TABLE IF NOT EXISTS `fcontact` (
-	`id` int NOT NULL auto_increment COMMENT '',
-	`guid` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`url` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`name` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`photo` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`request` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`nick` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`addr` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`batch` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`notify` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`poll` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`confirm` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`priority` tinyint NOT NULL DEFAULT 0 COMMENT '',
-	`network` char(4) NOT NULL DEFAULT '' COMMENT '',
-	`alias` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`pubkey` text COMMENT '',
-	`updated` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '',
-	 PRIMARY KEY(`id`),
-	 INDEX `addr` (`addr`(32)),
-	 UNIQUE INDEX `url` (`url`(190))
-) DEFAULT COLLATE utf8mb4_general_ci;
-
---
--- TABLE fsuggest
---
-CREATE TABLE IF NOT EXISTS `fsuggest` (
-	`id` int NOT NULL auto_increment COMMENT '',
-	`uid` mediumint NOT NULL DEFAULT 0 COMMENT 'User id',
-	`cid` int NOT NULL DEFAULT 0 COMMENT '',
-	`name` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`url` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`request` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`photo` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`note` text COMMENT '',
-	`created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '',
-	 PRIMARY KEY(`id`)
-) DEFAULT COLLATE utf8mb4_general_ci;
-
---
--- TABLE gcign
---
-CREATE TABLE IF NOT EXISTS `gcign` (
-	`id` int NOT NULL auto_increment COMMENT '',
-	`uid` mediumint NOT NULL DEFAULT 0 COMMENT 'User id',
-	`gcid` int NOT NULL DEFAULT 0 COMMENT '',
-	 PRIMARY KEY(`id`),
-	 INDEX `uid` (`uid`),
-	 INDEX `gcid` (`gcid`)
-) DEFAULT COLLATE utf8mb4_general_ci;
-
---
--- TABLE gcontact
---
-CREATE TABLE IF NOT EXISTS `gcontact` (
-	`id` int NOT NULL auto_increment COMMENT '',
-	`name` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`nick` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`url` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`nurl` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`photo` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`connect` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '',
-	`updated` datetime DEFAULT '0001-01-01 00:00:00' COMMENT '',
-	`last_contact` datetime DEFAULT '0001-01-01 00:00:00' COMMENT '',
-	`last_failure` datetime DEFAULT '0001-01-01 00:00:00' COMMENT '',
-	`location` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`about` text COMMENT '',
-	`keywords` text COMMENT '',
-	`gender` varchar(32) NOT NULL DEFAULT '' COMMENT '',
-	`birthday` varchar(32) NOT NULL DEFAULT '0001-01-01' COMMENT '',
-	`community` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`contact-type` tinyint NOT NULL DEFAULT -1 COMMENT '',
-	`hide` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`nsfw` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`network` char(4) NOT NULL DEFAULT '' COMMENT '',
-	`addr` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`notify` text COMMENT '',
-	`alias` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`generation` tinyint NOT NULL DEFAULT 0 COMMENT '',
-	`server_url` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	 PRIMARY KEY(`id`),
-	 UNIQUE INDEX `nurl` (`nurl`(190)),
-	 INDEX `name` (`name`(64)),
-	 INDEX `nick` (`nick`(32)),
-	 INDEX `addr` (`addr`(64)),
-	 INDEX `hide_network_updated` (`hide`,`network`,`updated`),
-	 INDEX `updated` (`updated`)
-) DEFAULT COLLATE utf8mb4_general_ci;
-
---
--- TABLE glink
---
-CREATE TABLE IF NOT EXISTS `glink` (
-	`id` int NOT NULL auto_increment COMMENT '',
-	`cid` int NOT NULL DEFAULT 0 COMMENT '',
-	`uid` mediumint NOT NULL DEFAULT 0 COMMENT 'User id',
-	`gcid` int NOT NULL DEFAULT 0 COMMENT '',
-	`zcid` int NOT NULL DEFAULT 0 COMMENT '',
-	`updated` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '',
-	 PRIMARY KEY(`id`),
-	 UNIQUE INDEX `cid_uid_gcid_zcid` (`cid`,`uid`,`gcid`,`zcid`),
-	 INDEX `gcid` (`gcid`)
-) DEFAULT COLLATE utf8mb4_general_ci;
-
---
--- TABLE group
---
-CREATE TABLE IF NOT EXISTS `group` (
-	`id` int NOT NULL auto_increment COMMENT '',
-	`uid` mediumint NOT NULL DEFAULT 0 COMMENT 'User id',
-	`visible` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`deleted` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`name` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	 PRIMARY KEY(`id`),
-	 INDEX `uid` (`uid`)
-) DEFAULT COLLATE utf8mb4_general_ci;
-
---
--- TABLE group_member
---
-CREATE TABLE IF NOT EXISTS `group_member` (
-	`id` int NOT NULL auto_increment COMMENT '',
-	`gid` int NOT NULL DEFAULT 0 COMMENT '',
-	`contact-id` int NOT NULL DEFAULT 0 COMMENT '',
-	 PRIMARY KEY(`id`),
-	 INDEX `contactid` (`contact-id`),
-	 UNIQUE INDEX `gid_contactid` (`gid`,`contact-id`)
-) DEFAULT COLLATE utf8mb4_general_ci;
-
---
--- TABLE gserver
---
-CREATE TABLE IF NOT EXISTS `gserver` (
-	`id` int NOT NULL auto_increment COMMENT '',
-	`url` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`nurl` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`version` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`site_name` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`info` text COMMENT '',
-	`register_policy` tinyint NOT NULL DEFAULT 0 COMMENT '',
-	`registered-users` int NOT NULL DEFAULT 0 COMMENT '',
-	`poco` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`noscrape` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`network` char(4) NOT NULL DEFAULT '' COMMENT '',
-	`platform` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '',
-	`last_poco_query` datetime DEFAULT '0001-01-01 00:00:00' COMMENT '',
-	`last_contact` datetime DEFAULT '0001-01-01 00:00:00' COMMENT '',
-	`last_failure` datetime DEFAULT '0001-01-01 00:00:00' COMMENT '',
-	 PRIMARY KEY(`id`),
-	 UNIQUE INDEX `nurl` (`nurl`(190))
-) DEFAULT COLLATE utf8mb4_general_ci;
-
---
--- TABLE hook
---
-CREATE TABLE IF NOT EXISTS `hook` (
-	`id` int NOT NULL auto_increment COMMENT '',
-	`hook` varbinary(100) NOT NULL DEFAULT '' COMMENT '',
-	`file` varbinary(200) NOT NULL DEFAULT '' COMMENT '',
-	`function` varbinary(200) NOT NULL DEFAULT '' COMMENT '',
-	`priority` smallint NOT NULL DEFAULT 0 COMMENT '',
-	 PRIMARY KEY(`id`),
-	 UNIQUE INDEX `hook_file_function` (`hook`,`file`,`function`)
-) DEFAULT COLLATE utf8mb4_general_ci;
-
---
--- TABLE intro
---
-CREATE TABLE IF NOT EXISTS `intro` (
-	`id` int NOT NULL auto_increment COMMENT '',
-	`uid` mediumint NOT NULL DEFAULT 0 COMMENT 'User id',
-	`fid` int NOT NULL DEFAULT 0 COMMENT '',
-	`contact-id` int NOT NULL DEFAULT 0 COMMENT '',
-	`knowyou` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`duplex` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`note` text COMMENT '',
-	`hash` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`datetime` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '',
-	`blocked` boolean NOT NULL DEFAULT '1' COMMENT '',
-	`ignore` boolean NOT NULL DEFAULT '0' COMMENT '',
-	 PRIMARY KEY(`id`)
-) DEFAULT COLLATE utf8mb4_general_ci;
-
---
--- TABLE item
---
-CREATE TABLE IF NOT EXISTS `item` (
-	`id` int NOT NULL auto_increment,
-	`guid` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`uri` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`uid` mediumint NOT NULL DEFAULT 0 COMMENT 'User id',
-	`contact-id` int NOT NULL DEFAULT 0 COMMENT '',
-	`gcontact-id` int NOT NULL DEFAULT 0 COMMENT '',
-	`type` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`wall` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`gravity` tinyint NOT NULL DEFAULT 0 COMMENT '',
-	`parent` int NOT NULL DEFAULT 0 COMMENT '',
-	`parent-uri` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`extid` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`thr-parent` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '',
-	`edited` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '',
-	`commented` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '',
-	`received` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '',
-	`changed` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '',
-	`owner-id` int NOT NULL DEFAULT 0 COMMENT '',
-	`owner-name` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`owner-link` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`owner-avatar` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`author-id` int NOT NULL DEFAULT 0 COMMENT '',
-	`author-name` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`author-link` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`author-avatar` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`title` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`body` mediumtext COMMENT '',
-	`app` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`verb` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`object-type` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`object` text COMMENT '',
-	`target-type` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`target` text COMMENT '',
-	`postopts` text COMMENT '',
-	`plink` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`resource-id` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`event-id` int NOT NULL DEFAULT 0 COMMENT '',
-	`tag` mediumtext COMMENT '',
-	`attach` mediumtext COMMENT '',
-	`inform` mediumtext COMMENT '',
-	`file` mediumtext COMMENT '',
-	`location` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`coord` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`allow_cid` mediumtext COMMENT '',
-	`allow_gid` mediumtext COMMENT '',
-	`deny_cid` mediumtext COMMENT '',
-	`deny_gid` mediumtext COMMENT '',
-	`private` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`pubmail` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`moderated` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`visible` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`spam` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`starred` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`bookmark` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`unseen` boolean NOT NULL DEFAULT '1' COMMENT '',
-	`deleted` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`origin` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`forum_mode` tinyint NOT NULL DEFAULT 0 COMMENT '',
-	`mention` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`network` char(4) NOT NULL DEFAULT '' COMMENT '',
-	`rendered-hash` varchar(32) NOT NULL DEFAULT '' COMMENT '',
-	`rendered-html` mediumtext COMMENT '',
-	`global` boolean NOT NULL DEFAULT '0' COMMENT '',
-	 PRIMARY KEY(`id`),
-	 INDEX `guid` (`guid`(191)),
-	 INDEX `uri` (`uri`(191)),
-	 INDEX `parent` (`parent`),
-	 INDEX `parent-uri` (`parent-uri`(191)),
-	 INDEX `extid` (`extid`(191)),
-	 INDEX `uid_id` (`uid`,`id`),
-	 INDEX `uid_contactid_id` (`uid`,`contact-id`,`id`),
-	 INDEX `uid_created` (`uid`,`created`),
-	 INDEX `uid_unseen_contactid` (`uid`,`unseen`,`contact-id`),
-	 INDEX `uid_network_received` (`uid`,`network`,`received`),
-	 INDEX `uid_network_commented` (`uid`,`network`,`commented`),
-	 INDEX `uid_thrparent` (`uid`,`thr-parent`(190)),
-	 INDEX `uid_parenturi` (`uid`,`parent-uri`(190)),
-	 INDEX `uid_contactid_created` (`uid`,`contact-id`,`created`),
-	 INDEX `authorid_created` (`author-id`,`created`),
-	 INDEX `ownerid` (`owner-id`),
-	 INDEX `uid_uri` (`uid`,`uri`(190)),
-	 INDEX `resource-id` (`resource-id`(191)),
-	 INDEX `contactid_allowcid_allowpid_denycid_denygid` (`contact-id`,`allow_cid`(10),`allow_gid`(10),`deny_cid`(10),`deny_gid`(10)),
-	 INDEX `uid_type_changed` (`uid`,`type`(190),`changed`),
-	 INDEX `contactid_verb` (`contact-id`,`verb`(190)),
-	 INDEX `deleted_changed` (`deleted`,`changed`),
-	 INDEX `uid_wall_changed` (`uid`,`wall`,`changed`),
-	 INDEX `uid_eventid` (`uid`,`event-id`),
-	 INDEX `uid_authorlink` (`uid`,`author-link`(190)),
-	 INDEX `uid_ownerlink` (`uid`,`owner-link`(190))
-) DEFAULT COLLATE utf8mb4_general_ci;
-
---
--- TABLE locks
---
-CREATE TABLE IF NOT EXISTS `locks` (
-	`id` int NOT NULL auto_increment COMMENT '',
-	`name` varchar(128) NOT NULL DEFAULT '' COMMENT '',
-	`locked` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`pid` int NOT NULL DEFAULT 0 COMMENT '',
-	 PRIMARY KEY(`id`)
-) DEFAULT COLLATE utf8mb4_general_ci;
-
---
--- TABLE mail
---
-CREATE TABLE IF NOT EXISTS `mail` (
-	`id` int NOT NULL auto_increment COMMENT '',
-	`uid` mediumint NOT NULL DEFAULT 0 COMMENT 'User id',
-	`guid` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`from-name` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`from-photo` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`from-url` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`contact-id` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`convid` int NOT NULL DEFAULT 0 COMMENT '',
-	`title` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`body` mediumtext COMMENT '',
-	`seen` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`reply` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`replied` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`unknown` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`uri` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`parent-uri` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '',
-	 PRIMARY KEY(`id`),
-	 INDEX `uid_seen` (`uid`,`seen`),
-	 INDEX `convid` (`convid`),
-	 INDEX `uri` (`uri`(64)),
-	 INDEX `parent-uri` (`parent-uri`(64)),
-	 INDEX `contactid` (`contact-id`(32))
-) DEFAULT COLLATE utf8mb4_general_ci;
-
---
--- TABLE mailacct
---
-CREATE TABLE IF NOT EXISTS `mailacct` (
-	`id` int NOT NULL auto_increment COMMENT '',
-	`uid` mediumint NOT NULL DEFAULT 0 COMMENT 'User id',
-	`server` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`port` smallint unsigned NOT NULL DEFAULT 0 COMMENT '',
-	`ssltype` varchar(16) NOT NULL DEFAULT '' COMMENT '',
-	`mailbox` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`user` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`pass` text COMMENT '',
-	`reply_to` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`action` tinyint NOT NULL DEFAULT 0 COMMENT '',
-	`movetofolder` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`pubmail` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`last_check` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '',
-	 PRIMARY KEY(`id`)
-) DEFAULT COLLATE utf8mb4_general_ci;
-
---
--- TABLE manage
---
-CREATE TABLE IF NOT EXISTS `manage` (
-	`id` int NOT NULL auto_increment COMMENT '',
-	`uid` mediumint NOT NULL DEFAULT 0 COMMENT 'User id',
-	`mid` mediumint NOT NULL DEFAULT 0 COMMENT 'User id',
-	 PRIMARY KEY(`id`),
-	 UNIQUE INDEX `uid_mid` (`uid`,`mid`)
-) DEFAULT COLLATE utf8mb4_general_ci;
-
---
--- TABLE notify
---
-CREATE TABLE IF NOT EXISTS `notify` (
-	`id` int NOT NULL auto_increment COMMENT '',
-	`hash` varchar(64) NOT NULL DEFAULT '' COMMENT '',
-	`type` smallint NOT NULL DEFAULT 0 COMMENT '',
-	`name` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`url` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`photo` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`date` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '',
-	`msg` mediumtext COMMENT '',
-	`uid` mediumint NOT NULL DEFAULT 0 COMMENT 'User id',
-	`link` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`iid` int NOT NULL DEFAULT 0 COMMENT '',
-	`parent` int NOT NULL DEFAULT 0 COMMENT '',
-	`seen` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`verb` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`otype` varchar(16) NOT NULL DEFAULT '' COMMENT '',
-	`name_cache` tinytext COMMENT '',
-	`msg_cache` mediumtext COMMENT '',
-	 PRIMARY KEY(`id`),
-	 INDEX `hash_uid` (`hash`,`uid`),
-	 INDEX `seen_uid_date` (`seen`,`uid`,`date`),
-	 INDEX `uid_date` (`uid`,`date`),
-	 INDEX `uid_type_link` (`uid`,`type`,`link`(190))
-) DEFAULT COLLATE utf8mb4_general_ci;
-
---
--- TABLE notify-threads
---
-CREATE TABLE IF NOT EXISTS `notify-threads` (
-	`id` int NOT NULL auto_increment COMMENT '',
-	`notify-id` int NOT NULL DEFAULT 0 COMMENT '',
-	`master-parent-item` int NOT NULL DEFAULT 0 COMMENT '',
-	`parent-item` int NOT NULL DEFAULT 0 COMMENT '',
-	`receiver-uid` mediumint NOT NULL DEFAULT 0 COMMENT 'User id',
-	 PRIMARY KEY(`id`)
-) DEFAULT COLLATE utf8mb4_general_ci;
-
---
--- TABLE oembed
---
-CREATE TABLE IF NOT EXISTS `oembed` (
-	`url` varbinary(255) NOT NULL COMMENT '',
-	`maxwidth` mediumint NOT NULL COMMENT '',
-	`content` mediumtext COMMENT '',
-	`created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '',
-	 PRIMARY KEY(`url`,`maxwidth`),
-	 INDEX `created` (`created`)
-) DEFAULT COLLATE utf8mb4_general_ci;
-
---
--- TABLE parsed_url
---
-CREATE TABLE IF NOT EXISTS `parsed_url` (
-	`url` varbinary(255) NOT NULL COMMENT '',
-	`guessing` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`oembed` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`content` mediumtext COMMENT '',
-	`created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '',
-	 PRIMARY KEY(`url`,`guessing`,`oembed`),
-	 INDEX `created` (`created`)
-) DEFAULT COLLATE utf8mb4_general_ci;
-
---
--- TABLE participation
---
-CREATE TABLE IF NOT EXISTS `participation` (
-	`iid` int NOT NULL COMMENT '',
-	`server` varchar(60) NOT NULL COMMENT '',
-	`cid` int NOT NULL COMMENT '',
-	`fid` int NOT NULL COMMENT '',
-	 PRIMARY KEY(`iid`,`server`)
-) DEFAULT COLLATE utf8mb4_general_ci;
-
---
--- TABLE pconfig
---
-CREATE TABLE IF NOT EXISTS `pconfig` (
-	`id` int NOT NULL auto_increment COMMENT '',
-	`uid` mediumint NOT NULL DEFAULT 0 COMMENT 'User id',
-	`cat` varbinary(255) NOT NULL DEFAULT '' COMMENT '',
-	`k` varbinary(255) NOT NULL DEFAULT '' COMMENT '',
-	`v` mediumtext COMMENT '',
-	 PRIMARY KEY(`id`),
-	 UNIQUE INDEX `uid_cat_k` (`uid`,`cat`,`k`)
-) DEFAULT COLLATE utf8mb4_general_ci;
-
---
--- TABLE photo
---
-CREATE TABLE IF NOT EXISTS `photo` (
-	`id` int NOT NULL auto_increment COMMENT '',
-	`uid` mediumint NOT NULL DEFAULT 0 COMMENT 'User id',
-	`contact-id` int NOT NULL DEFAULT 0 COMMENT '',
-	`guid` varchar(64) NOT NULL DEFAULT '' COMMENT '',
-	`resource-id` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '',
-	`edited` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '',
-	`title` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`desc` text COMMENT '',
-	`album` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`filename` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`type` varchar(128) NOT NULL DEFAULT 'image/jpeg',
-	`height` smallint NOT NULL DEFAULT 0 COMMENT '',
-	`width` smallint NOT NULL DEFAULT 0 COMMENT '',
-	`datasize` int NOT NULL DEFAULT 0 COMMENT '',
-	`data` mediumblob NOT NULL COMMENT '',
-	`scale` tinyint NOT NULL DEFAULT 0 COMMENT '',
-	`profile` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`allow_cid` mediumtext COMMENT '',
-	`allow_gid` mediumtext COMMENT '',
-	`deny_cid` mediumtext COMMENT '',
-	`deny_gid` mediumtext COMMENT '',
-	 PRIMARY KEY(`id`),
-	 INDEX `contactid` (`contact-id`),
-	 INDEX `uid_contactid` (`uid`,`contact-id`),
-	 INDEX `uid_profile` (`uid`,`profile`),
-	 INDEX `uid_album_scale_created` (`uid`,`album`(32),`scale`,`created`),
-	 INDEX `uid_album_resource-id_created` (`uid`,`album`(32),`resource-id`(64),`created`),
-	 INDEX `resource-id` (`resource-id`(64))
-) DEFAULT COLLATE utf8mb4_general_ci;
-
---
--- TABLE poll
---
-CREATE TABLE IF NOT EXISTS `poll` (
-	`id` int NOT NULL auto_increment COMMENT '',
-	`uid` mediumint NOT NULL DEFAULT 0 COMMENT 'User id',
-	`q0` text COMMENT '',
-	`q1` text COMMENT '',
-	`q2` text COMMENT '',
-	`q3` text COMMENT '',
-	`q4` text COMMENT '',
-	`q5` text COMMENT '',
-	`q6` text COMMENT '',
-	`q7` text COMMENT '',
-	`q8` text COMMENT '',
-	`q9` text COMMENT '',
-	 PRIMARY KEY(`id`),
-	 INDEX `uid` (`uid`)
-) DEFAULT COLLATE utf8mb4_general_ci;
-
---
--- TABLE poll_result
---
-CREATE TABLE IF NOT EXISTS `poll_result` (
-	`id` int NOT NULL auto_increment COMMENT '',
-	`poll_id` int NOT NULL DEFAULT 0,
-	`choice` tinyint NOT NULL DEFAULT 0 COMMENT '',
-	 PRIMARY KEY(`id`),
-	 INDEX `poll_id` (`poll_id`)
-) DEFAULT COLLATE utf8mb4_general_ci;
-
---
--- TABLE process
---
-CREATE TABLE IF NOT EXISTS `process` (
-	`pid` int NOT NULL COMMENT '',
-	`command` varbinary(32) NOT NULL DEFAULT '' COMMENT '',
-	`created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '',
-	 PRIMARY KEY(`pid`),
-	 INDEX `command` (`command`)
-) DEFAULT COLLATE utf8mb4_general_ci;
-
---
--- TABLE profile
---
-CREATE TABLE IF NOT EXISTS `profile` (
-	`id` int NOT NULL auto_increment COMMENT '',
-	`uid` mediumint NOT NULL DEFAULT 0 COMMENT 'User id',
-	`profile-name` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`is-default` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`hide-friends` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`name` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`pdesc` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`dob` varchar(32) NOT NULL DEFAULT '0000-00-00' COMMENT '',
-	`address` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`locality` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`region` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`postal-code` varchar(32) NOT NULL DEFAULT '' COMMENT '',
-	`country-name` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`hometown` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`gender` varchar(32) NOT NULL DEFAULT '' COMMENT '',
-	`marital` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`with` text COMMENT '',
-	`howlong` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '',
-	`sexual` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`politic` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`religion` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`pub_keywords` text COMMENT '',
-	`prv_keywords` text COMMENT '',
-	`likes` text COMMENT '',
-	`dislikes` text COMMENT '',
-	`about` text COMMENT '',
-	`summary` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`music` text COMMENT '',
-	`book` text COMMENT '',
-	`tv` text COMMENT '',
-	`film` text COMMENT '',
-	`interest` text COMMENT '',
-	`romance` text COMMENT '',
-	`work` text COMMENT '',
-	`education` text COMMENT '',
-	`contact` text COMMENT '',
-	`homepage` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`xmpp` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`photo` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`thumb` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`publish` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`net-publish` boolean NOT NULL DEFAULT '0' COMMENT '',
-	 PRIMARY KEY(`id`),
-	 INDEX `uid_is-default` (`uid`,`is-default`)
-) DEFAULT COLLATE utf8mb4_general_ci;
-
---
--- TABLE profile_check
---
-CREATE TABLE IF NOT EXISTS `profile_check` (
-	`id` int NOT NULL auto_increment COMMENT '',
-	`uid` mediumint NOT NULL DEFAULT 0 COMMENT 'User id',
-	`cid` int NOT NULL DEFAULT 0 COMMENT '',
-	`dfrn_id` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`sec` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`expire` int NOT NULL DEFAULT 0 COMMENT '',
-	 PRIMARY KEY(`id`)
-) DEFAULT COLLATE utf8mb4_general_ci;
-
---
--- TABLE push_subscriber
---
-CREATE TABLE IF NOT EXISTS `push_subscriber` (
-	`id` int NOT NULL auto_increment COMMENT '',
-	`uid` mediumint NOT NULL DEFAULT 0 COMMENT 'User id',
-	`callback_url` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`topic` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`nickname` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`push` tinyint NOT NULL DEFAULT 0 COMMENT '',
-	`last_update` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '',
-	`secret` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	 PRIMARY KEY(`id`)
-) DEFAULT COLLATE utf8mb4_general_ci;
-
---
--- TABLE queue
---
-CREATE TABLE IF NOT EXISTS `queue` (
-	`id` int NOT NULL auto_increment COMMENT '',
-	`cid` int NOT NULL DEFAULT 0 COMMENT 'Message receiver',
-	`network` char(4) NOT NULL DEFAULT '' COMMENT 'Receiver\'s network',
-	`guid` varchar(255) NOT NULL DEFAULT '' COMMENT 'Unique GUID of the message',
-	`created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT 'Date, when the message was created',
-	`last` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT 'Date of last trial',
-	`next` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT 'Next retrial date',
-	`retrial` tinyint NOT NULL DEFAULT 0 COMMENT 'Retrial counter',
-	`content` mediumtext COMMENT '',
-	`batch` boolean NOT NULL DEFAULT '0' COMMENT '',
-	 PRIMARY KEY(`id`),
-	 INDEX `last` (`last`),
-	 INDEX `next` (`next`)
-) DEFAULT COLLATE utf8mb4_general_ci;
-
---
--- TABLE register
---
-CREATE TABLE IF NOT EXISTS `register` (
-	`id` int NOT NULL auto_increment COMMENT '',
-	`hash` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '',
-	`uid` mediumint NOT NULL DEFAULT 0 COMMENT 'User id',
-	`password` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`language` varchar(16) NOT NULL DEFAULT '' COMMENT '',
-	`note` text COMMENT '',
-	 PRIMARY KEY(`id`)
-) DEFAULT COLLATE utf8mb4_general_ci;
-
---
--- TABLE search
---
-CREATE TABLE IF NOT EXISTS `search` (
-	`id` int NOT NULL auto_increment COMMENT '',
-	`uid` mediumint NOT NULL DEFAULT 0 COMMENT 'User id',
-	`term` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	 PRIMARY KEY(`id`),
-	 INDEX `uid` (`uid`)
-) DEFAULT COLLATE utf8mb4_general_ci;
-
---
--- TABLE session
---
-CREATE TABLE IF NOT EXISTS `session` (
-	`id` bigint NOT NULL auto_increment COMMENT '',
-	`sid` varbinary(255) NOT NULL DEFAULT '' COMMENT '',
-	`data` text COMMENT '',
-	`expire` int NOT NULL DEFAULT 0 COMMENT '',
-	 PRIMARY KEY(`id`),
-	 INDEX `sid` (`sid`(64)),
-	 INDEX `expire` (`expire`)
-) DEFAULT COLLATE utf8mb4_general_ci;
-
---
--- TABLE sign
---
-CREATE TABLE IF NOT EXISTS `sign` (
-	`id` int NOT NULL auto_increment COMMENT '',
-	`iid` int NOT NULL DEFAULT 0 COMMENT '',
-	`signed_text` mediumtext COMMENT '',
-	`signature` text COMMENT '',
-	`signer` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	 PRIMARY KEY(`id`),
-	 UNIQUE INDEX `iid` (`iid`)
-) DEFAULT COLLATE utf8mb4_general_ci;
-
---
--- TABLE term
---
-CREATE TABLE IF NOT EXISTS `term` (
-	`tid` int NOT NULL auto_increment COMMENT '',
-	`oid` int NOT NULL DEFAULT 0 COMMENT '',
-	`otype` tinyint NOT NULL DEFAULT 0 COMMENT '',
-	`type` tinyint NOT NULL DEFAULT 0 COMMENT '',
-	`term` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`url` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`guid` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '',
-	`received` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '',
-	`global` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`aid` int NOT NULL DEFAULT 0 COMMENT '',
-	`uid` mediumint NOT NULL DEFAULT 0 COMMENT 'User id',
-	 PRIMARY KEY(`tid`),
-	 INDEX `oid_otype_type_term` (`oid`,`otype`,`type`,`term`(32)),
-	 INDEX `uid_otype_type_term_global_created` (`uid`,`otype`,`type`,`term`(32),`global`,`created`),
-	 INDEX `uid_otype_type_url` (`uid`,`otype`,`type`,`url`(64)),
-	 INDEX `guid` (`guid`(64))
-) DEFAULT COLLATE utf8mb4_general_ci;
-
---
--- TABLE thread
---
-CREATE TABLE IF NOT EXISTS `thread` (
-	`iid` int NOT NULL DEFAULT 0 COMMENT '',
-	`uid` mediumint NOT NULL DEFAULT 0 COMMENT 'User id',
-	`contact-id` int NOT NULL DEFAULT 0 COMMENT '',
-	`gcontact-id` int NOT NULL DEFAULT 0 COMMENT '',
-	`owner-id` int NOT NULL DEFAULT 0 COMMENT '',
-	`author-id` int NOT NULL DEFAULT 0 COMMENT '',
-	`created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '',
-	`edited` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '',
-	`commented` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '',
-	`received` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '',
-	`changed` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '',
-	`wall` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`private` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`pubmail` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`moderated` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`visible` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`spam` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`starred` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`ignored` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`bookmark` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`unseen` boolean NOT NULL DEFAULT '1' COMMENT '',
-	`deleted` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`origin` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`forum_mode` tinyint NOT NULL DEFAULT 0 COMMENT '',
-	`mention` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`network` char(4) NOT NULL DEFAULT '' COMMENT '',
-	 PRIMARY KEY(`iid`),
-	 INDEX `uid_network_commented` (`uid`,`network`,`commented`),
-	 INDEX `uid_network_created` (`uid`,`network`,`created`),
-	 INDEX `uid_contactid_commented` (`uid`,`contact-id`,`commented`),
-	 INDEX `uid_contactid_created` (`uid`,`contact-id`,`created`),
-	 INDEX `contactid` (`contact-id`),
-	 INDEX `ownerid` (`owner-id`),
-	 INDEX `authorid` (`author-id`),
-	 INDEX `uid_created` (`uid`,`created`),
-	 INDEX `uid_commented` (`uid`,`commented`),
-	 INDEX `uid_wall_created` (`uid`,`wall`,`created`),
-	 INDEX `private_wall_origin_commented` (`private`,`wall`,`origin`,`commented`)
-) DEFAULT COLLATE utf8mb4_general_ci;
-
---
--- TABLE tokens
---
-CREATE TABLE IF NOT EXISTS `tokens` (
-	`id` varchar(40) NOT NULL COMMENT '',
-	`secret` text COMMENT '',
-	`client_id` varchar(20) NOT NULL DEFAULT '',
-	`expires` int NOT NULL DEFAULT 0 COMMENT '',
-	`scope` varchar(200) NOT NULL DEFAULT '' COMMENT '',
-	`uid` mediumint NOT NULL DEFAULT 0 COMMENT 'User id',
-	 PRIMARY KEY(`id`)
-) DEFAULT COLLATE utf8mb4_general_ci;
-
---
--- TABLE user
---
-CREATE TABLE IF NOT EXISTS `user` (
-	`uid` mediumint NOT NULL auto_increment COMMENT '',
-	`parent-uid` mediumint NOT NULL DEFAULT 0 COMMENT 'The parent user that has full control about this user',
-	`guid` varchar(64) NOT NULL DEFAULT '' COMMENT '',
-	`username` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`password` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`legacy_password` boolean NOT NULL DEFAULT '0' COMMENT 'Is the password hash double-hashed?',
-	`nickname` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`email` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`openid` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`timezone` varchar(128) NOT NULL DEFAULT '' COMMENT '',
-	`language` varchar(32) NOT NULL DEFAULT 'en' COMMENT '',
-	`register_date` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '',
-	`login_date` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '',
-	`default-location` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`allow_location` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`theme` varchar(255) NOT NULL DEFAULT '' COMMENT '',
-	`pubkey` text COMMENT '',
-	`prvkey` text COMMENT '',
-	`spubkey` text COMMENT '',
-	`sprvkey` text COMMENT '',
-	`verified` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`blocked` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`blockwall` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`hidewall` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`blocktags` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`unkmail` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`cntunkmail` int NOT NULL DEFAULT 10 COMMENT '',
-	`notify-flags` smallint unsigned NOT NULL DEFAULT 65535 COMMENT '',
-	`page-flags` tinyint NOT NULL DEFAULT 0 COMMENT '',
-	`account-type` tinyint NOT NULL DEFAULT 0 COMMENT '',
-	`prvnets` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`pwdreset` varchar(255) COMMENT 'Password reset request token',
-	`pwdreset_time` datetime COMMENT 'Timestamp of the last password reset request',
-	`maxreq` int NOT NULL DEFAULT 10 COMMENT '',
-	`expire` int NOT NULL DEFAULT 0 COMMENT '',
-	`account_removed` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`account_expired` boolean NOT NULL DEFAULT '0' COMMENT '',
-	`account_expires_on` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '',
-	`expire_notification_sent` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '',
-	`def_gid` int NOT NULL DEFAULT 0 COMMENT '',
-	`allow_cid` mediumtext COMMENT '',
-	`allow_gid` mediumtext COMMENT '',
-	`deny_cid` mediumtext COMMENT '',
-	`deny_gid` mediumtext COMMENT '',
-	`openidserver` text COMMENT '',
-	 PRIMARY KEY(`uid`),
-	 INDEX `nickname` (`nickname`(32))
-) DEFAULT COLLATE utf8mb4_general_ci;
-
---
--- TABLE userd
---
-CREATE TABLE IF NOT EXISTS `userd` (
-	`id` int NOT NULL auto_increment COMMENT '',
-	`username` varchar(255) NOT NULL COMMENT '',
-	 PRIMARY KEY(`id`),
-	 INDEX `username` (`username`(32))
-) DEFAULT COLLATE utf8mb4_general_ci;
-
---
--- TABLE workerqueue
---
-CREATE TABLE IF NOT EXISTS `workerqueue` (
-	`id` int NOT NULL auto_increment COMMENT 'Auto incremented worker task id',
-	`parameter` mediumblob COMMENT 'Task command',
-	`priority` tinyint NOT NULL DEFAULT 0 COMMENT 'Task priority',
-	`created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT 'Creation date',
-	`pid` int NOT NULL DEFAULT 0 COMMENT 'Process id of the worker',
-	`executed` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT 'Execution date',
-	`done` boolean NOT NULL DEFAULT '0' COMMENT 'Marked when the task was done, will be deleted later',
-	 PRIMARY KEY(`id`),
-	 INDEX `pid` (`pid`),
-	 INDEX `parameter` (`parameter`(64)),
-	 INDEX `priority_created` (`priority`,`created`),
-	 INDEX `executed` (`executed`)
-) DEFAULT COLLATE utf8mb4_general_ci;
+scripts/dbstructure.php <command>
 
+Commands:
+dryrun		show database update schema queries without running them
+update		update database schema
+dumpsql		dump database schema
+toinnodb	convert all tables from MyISAM to InnoDB
diff --git a/src/Database/DBStructure.php b/src/Database/DBStructure.php
index f87d90d196..f6ce129e17 100644
--- a/src/Database/DBStructure.php
+++ b/src/Database/DBStructure.php
@@ -131,8 +131,8 @@ class DBStructure
 		if (DBM::is_result($structures)) {
 			foreach ($structures AS $field) {
 				// Replace the default size values so that we don't have to define them
-				$search = ['tinyint(1)', 'tinyint(4)', 'smallint(5) unsigned', 'smallint(6)', 'mediumint(9)', 'bigint(20)', 'int(11)'];
-				$replace = ['boolean', 'tinyint', 'smallint unsigned', 'smallint', 'mediumint', 'bigint', 'int'];
+				$search = ['tinyint(1)', 'tinyint(3) unsigned', 'tinyint(4)', 'smallint(5) unsigned', 'smallint(6)', 'mediumint(8) unsigned', 'mediumint(9)', 'bigint(20)', 'int(10) unsigned', 'int(11)'];
+				$replace = ['boolean', 'tinyint unsigned', 'tinyint', 'smallint unsigned', 'smallint', 'mediumint unsigned', 'mediumint', 'bigint', 'int unsigned', 'int'];
 				$field["Type"] = str_replace($search, $replace, $field["Type"]);
 
 				$fielddata[$field["Field"]]["type"] = $field["Type"];
@@ -664,12 +664,12 @@ class DBStructure
 		$database["addon"] = [
 				"comment" => "registered addons",
 				"fields" => [
-						"id" => ["type" => "int", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
-						"name" => ["type" => "varbinary(190)", "not null" => "1", "default" => "", "comment" => ""],
-						"version" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
+						"id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
+						"name" => ["type" => "varchar(50)", "not null" => "1", "default" => "", "comment" => ""],
+						"version" => ["type" => "varchar(50)", "not null" => "1", "default" => "", "comment" => ""],
 						"installed" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
 						"hidden" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
-						"timestamp" => ["type" => "bigint", "not null" => "1", "default" => "0", "comment" => ""],
+						"timestamp" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "comment" => ""],
 						"plugin_admin" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
 						],
 				"indexes" => [
@@ -680,12 +680,12 @@ class DBStructure
 		$database["attach"] = [
 				"comment" => "file attachments",
 				"fields" => [
-						"id" => ["type" => "int", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
-						"uid" => ["type" => "mediumint", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"],
+						"id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
+						"uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"],
 						"hash" => ["type" => "varchar(64)", "not null" => "1", "default" => "", "comment" => ""],
 						"filename" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
 						"filetype" => ["type" => "varchar(64)", "not null" => "1", "default" => "", "comment" => ""],
-						"filesize" => ["type" => "int", "not null" => "1", "default" => "0", "comment" => ""],
+						"filesize" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "comment" => ""],
 						"data" => ["type" => "longblob", "not null" => "1", "comment" => ""],
 						"created" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => ""],
 						"edited" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => ""],
@@ -716,7 +716,7 @@ class DBStructure
 				"fields" => [
 						"k" => ["type" => "varbinary(255)", "not null" => "1", "primary" => "1", "comment" => ""],
 						"v" => ["type" => "mediumtext", "comment" => ""],
-						"expire_mode" => ["type" => "tinyint", "not null" => "1", "default" => "0", "comment" => ""],
+						"expire_mode" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "0", "comment" => ""],
 						"updated" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => ""],
 						],
 				"indexes" => [
@@ -727,10 +727,10 @@ class DBStructure
 		$database["challenge"] = [
 				"comment" => "",
 				"fields" => [
-						"id" => ["type" => "int", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
+						"id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
 						"challenge" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
 						"dfrn-id" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
-						"expire" => ["type" => "int", "not null" => "1", "default" => "0", "comment" => ""],
+						"expire" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "comment" => ""],
 						"type" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
 						"last_update" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
 						],
@@ -746,7 +746,7 @@ class DBStructure
 						"redirect_uri" => ["type" => "varchar(200)", "not null" => "1", "default" => "", "comment" => ""],
 						"name" => ["type" => "text", "comment" => ""],
 						"icon" => ["type" => "text", "comment" => ""],
-						"uid" => ["type" => "mediumint", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"],
+						"uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"],
 						],
 				"indexes" => [
 						"PRIMARY" => ["client_id"],
@@ -755,9 +755,9 @@ class DBStructure
 		$database["config"] = [
 				"comment" => "main configuration storage",
 				"fields" => [
-						"id" => ["type" => "int", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
-						"cat" => ["type" => "varbinary(255)", "not null" => "1", "default" => "", "comment" => ""],
-						"k" => ["type" => "varbinary(255)", "not null" => "1", "default" => "", "comment" => ""],
+						"id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
+						"cat" => ["type" => "varbinary(50)", "not null" => "1", "default" => "", "comment" => ""],
+						"k" => ["type" => "varbinary(50)", "not null" => "1", "default" => "", "comment" => ""],
 						"v" => ["type" => "mediumtext", "comment" => ""],
 						],
 				"indexes" => [
@@ -768,12 +768,12 @@ class DBStructure
 		$database["contact"] = [
 				"comment" => "contact table",
 				"fields" => [
-						"id" => ["type" => "int", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
-						"uid" => ["type" => "mediumint", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"],
+						"id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
+						"uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"],
 						"created" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => ""],
 						"self" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
 						"remote_self" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
-						"rel" => ["type" => "tinyint", "not null" => "1", "default" => "0", "comment" => ""],
+						"rel" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "0", "comment" => ""],
 						"duplex" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
 						"network" => ["type" => "char(4)", "not null" => "1", "default" => "", "comment" => ""],
 						"name" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
@@ -785,9 +785,9 @@ class DBStructure
 						"xmpp" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
 						"attag" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
 						"avatar" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
-						"photo" => ["type" => "text", "comment" => ""],
-						"thumb" => ["type" => "text", "comment" => ""],
-						"micro" => ["type" => "text", "comment" => ""],
+						"photo" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
+						"thumb" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
+						"micro" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
 						"site-pubkey" => ["type" => "text", "comment" => ""],
 						"issued-id" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
 						"dfrn-id" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
@@ -798,11 +798,11 @@ class DBStructure
 						"pubkey" => ["type" => "text", "comment" => ""],
 						"prvkey" => ["type" => "text", "comment" => ""],
 						"batch" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
-						"request" => ["type" => "text", "comment" => ""],
-						"notify" => ["type" => "text", "comment" => ""],
-						"poll" => ["type" => "text", "comment" => ""],
-						"confirm" => ["type" => "text", "comment" => ""],
-						"poco" => ["type" => "text", "comment" => ""],
+						"request" => ["type" => "varchar(255)", "comment" => ""],
+						"notify" => ["type" => "varchar(255)", "comment" => ""],
+						"poll" => ["type" => "varchar(255)", "comment" => ""],
+						"confirm" => ["type" => "varchar(255)", "comment" => ""],
+						"poco" => ["type" => "varchar(255)", "comment" => ""],
 						"aes_allow" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
 						"ret-aes" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
 						"usehub" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
@@ -816,7 +816,7 @@ class DBStructure
 						"avatar-date" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => ""],
 						"term-date" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => ""],
 						"last-item" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => ""],
-						"priority" => ["type" => "tinyint", "not null" => "1", "default" => "0", "comment" => ""],
+						"priority" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "0", "comment" => ""],
 						"blocked" => ["type" => "boolean", "not null" => "1", "default" => "1", "comment" => ""],
 						"readonly" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
 						"writable" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
@@ -828,13 +828,13 @@ class DBStructure
 						"pending" => ["type" => "boolean", "not null" => "1", "default" => "1", "comment" => ""],
 						"rating" => ["type" => "tinyint", "not null" => "1", "default" => "0", "comment" => ""],
 						"reason" => ["type" => "text", "comment" => ""],
-						"closeness" => ["type" => "tinyint", "not null" => "1", "default" => "99", "comment" => ""],
+						"closeness" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "99", "comment" => ""],
 						"info" => ["type" => "mediumtext", "comment" => ""],
-						"profile-id" => ["type" => "int", "not null" => "1", "default" => "0", "comment" => ""],
+						"profile-id" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "comment" => ""],
 						"bdyear" => ["type" => "varchar(4)", "not null" => "1", "default" => "", "comment" => ""],
 						"bd" => ["type" => "date", "not null" => "1", "default" => "0001-01-01", "comment" => ""],
 						"notify_new_posts" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
-						"fetch_further_information" => ["type" => "tinyint", "not null" => "1", "default" => "0", "comment" => ""],
+						"fetch_further_information" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "0", "comment" => ""],
 						"ffi_keyword_blacklist" => ["type" => "text", "comment" => ""],
 						],
 				"indexes" => [
@@ -856,10 +856,10 @@ class DBStructure
 		$database["conv"] = [
 				"comment" => "private messages",
 				"fields" => [
-						"id" => ["type" => "int", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
+						"id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
 						"guid" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
 						"recips" => ["type" => "text", "comment" => ""],
-						"uid" => ["type" => "mediumint", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"],
+						"uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"],
 						"creator" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
 						"created" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => ""],
 						"updated" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => ""],
@@ -877,7 +877,7 @@ class DBStructure
 						"reply-to-uri" => ["type" => "varbinary(255)", "not null" => "1", "default" => "", "comment" => ""],
 						"conversation-uri" => ["type" => "varbinary(255)", "not null" => "1", "default" => "", "comment" => ""],
 						"conversation-href" => ["type" => "varbinary(255)", "not null" => "1", "default" => "", "comment" => ""],
-						"protocol" => ["type" => "tinyint", "not null" => "1", "default" => "0", "comment" => ""],
+						"protocol" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "0", "comment" => ""],
 						"source" => ["type" => "mediumtext", "comment" => ""],
 						"received" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => ""],
 						],
@@ -890,10 +890,10 @@ class DBStructure
 		$database["event"] = [
 				"comment" => "Events",
 				"fields" => [
-						"id" => ["type" => "int", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
+						"id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
 						"guid" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
-						"uid" => ["type" => "mediumint", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"],
-						"cid" => ["type" => "int", "not null" => "1", "default" => "0", "relation" => ["contact" => "id"], "comment" => ""],
+						"uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"],
+						"cid" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "relation" => ["contact" => "id"], "comment" => ""],
 						"uri" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
 						"created" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => ""],
 						"edited" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => ""],
@@ -902,7 +902,7 @@ class DBStructure
 						"summary" => ["type" => "text", "comment" => ""],
 						"desc" => ["type" => "text", "comment" => ""],
 						"location" => ["type" => "text", "comment" => ""],
-						"type" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
+						"type" => ["type" => "varchar(20)", "not null" => "1", "default" => "", "comment" => ""],
 						"nofinish" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
 						"adjust" => ["type" => "boolean", "not null" => "1", "default" => "1", "comment" => ""],
 						"ignore" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
@@ -919,7 +919,7 @@ class DBStructure
 		$database["fcontact"] = [
 				"comment" => "Diaspora compatible contacts - used in the Diaspora implementation",
 				"fields" => [
-						"id" => ["type" => "int", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
+						"id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
 						"guid" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
 						"url" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
 						"name" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
@@ -931,7 +931,7 @@ class DBStructure
 						"notify" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
 						"poll" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
 						"confirm" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
-						"priority" => ["type" => "tinyint", "not null" => "1", "default" => "0", "comment" => ""],
+						"priority" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "0", "comment" => ""],
 						"network" => ["type" => "char(4)", "not null" => "1", "default" => "", "comment" => ""],
 						"alias" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
 						"pubkey" => ["type" => "text", "comment" => ""],
@@ -946,9 +946,9 @@ class DBStructure
 		$database["fsuggest"] = [
 				"comment" => "friend suggestion stuff",
 				"fields" => [
-						"id" => ["type" => "int", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
-						"uid" => ["type" => "mediumint", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"],
-						"cid" => ["type" => "int", "not null" => "1", "default" => "0", "relation" => ["contact" => "id"], "comment" => ""],
+						"id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
+						"uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"],
+						"cid" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "relation" => ["contact" => "id"], "comment" => ""],
 						"name" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
 						"url" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
 						"request" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
@@ -963,9 +963,9 @@ class DBStructure
 		$database["gcign"] = [
 				"comment" => "contacts ignored by friend suggestions",
 				"fields" => [
-						"id" => ["type" => "int", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
-						"uid" => ["type" => "mediumint", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"],
-						"gcid" => ["type" => "int", "not null" => "1", "default" => "0", "relation" => ["gcontact" => "id"], "comment" => ""],
+						"id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
+						"uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"],
+						"gcid" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "relation" => ["gcontact" => "id"], "comment" => ""],
 						],
 				"indexes" => [
 						"PRIMARY" => ["id"],
@@ -976,7 +976,7 @@ class DBStructure
 		$database["gcontact"] = [
 				"comment" => "global contacts",
 				"fields" => [
-						"id" => ["type" => "int", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
+						"id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
 						"name" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
 						"nick" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
 						"url" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
@@ -998,9 +998,9 @@ class DBStructure
 						"nsfw" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
 						"network" => ["type" => "char(4)", "not null" => "1", "default" => "", "comment" => ""],
 						"addr" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
-						"notify" => ["type" => "text", "comment" => ""],
+						"notify" => ["type" => "varchar(255)", "comment" => ""],
 						"alias" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
-						"generation" => ["type" => "tinyint", "not null" => "1", "default" => "0", "comment" => ""],
+						"generation" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "0", "comment" => ""],
 						"server_url" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
 						],
 				"indexes" => [
@@ -1016,11 +1016,11 @@ class DBStructure
 		$database["glink"] = [
 				"comment" => "'friends of friends' linkages derived from poco",
 				"fields" => [
-						"id" => ["type" => "int", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
-						"cid" => ["type" => "int", "not null" => "1", "default" => "0", "relation" => ["contact" => "id"], "comment" => ""],
-						"uid" => ["type" => "mediumint", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"],
-						"gcid" => ["type" => "int", "not null" => "1", "default" => "0", "relation" => ["gcontact" => "id"], "comment" => ""],
-						"zcid" => ["type" => "int", "not null" => "1", "default" => "0", "relation" => ["gcontact" => "id"], "comment" => ""],
+						"id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
+						"cid" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "relation" => ["contact" => "id"], "comment" => ""],
+						"uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"],
+						"gcid" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "relation" => ["gcontact" => "id"], "comment" => ""],
+						"zcid" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "relation" => ["gcontact" => "id"], "comment" => ""],
 						"updated" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => ""],
 						],
 				"indexes" => [
@@ -1032,8 +1032,8 @@ class DBStructure
 		$database["group"] = [
 				"comment" => "privacy groups, group info",
 				"fields" => [
-						"id" => ["type" => "int", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
-						"uid" => ["type" => "mediumint", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"],
+						"id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
+						"uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"],
 						"visible" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
 						"deleted" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
 						"name" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
@@ -1046,9 +1046,9 @@ class DBStructure
 		$database["group_member"] = [
 				"comment" => "privacy groups, member info",
 				"fields" => [
-						"id" => ["type" => "int", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
-						"gid" => ["type" => "int", "not null" => "1", "default" => "0", "relation" => ["group" => "id"], "comment" => ""],
-						"contact-id" => ["type" => "int", "not null" => "1", "default" => "0", "relation" => ["contact" => "id"], "comment" => ""],
+						"id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
+						"gid" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "relation" => ["group" => "id"], "comment" => ""],
+						"contact-id" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "relation" => ["contact" => "id"], "comment" => ""],
 						],
 				"indexes" => [
 						"PRIMARY" => ["id"],
@@ -1059,14 +1059,14 @@ class DBStructure
 		$database["gserver"] = [
 				"comment" => "Global servers",
 				"fields" => [
-						"id" => ["type" => "int", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
+						"id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
 						"url" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
 						"nurl" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
 						"version" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
 						"site_name" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
 						"info" => ["type" => "text", "comment" => ""],
 						"register_policy" => ["type" => "tinyint", "not null" => "1", "default" => "0", "comment" => ""],
-						"registered-users" => ["type" => "int", "not null" => "1", "default" => "0", "comment" => ""],
+						"registered-users" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "comment" => ""],
 						"poco" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
 						"noscrape" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
 						"network" => ["type" => "char(4)", "not null" => "1", "default" => "", "comment" => ""],
@@ -1084,11 +1084,11 @@ class DBStructure
 		$database["hook"] = [
 				"comment" => "addon hook registry",
 				"fields" => [
-						"id" => ["type" => "int", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
+						"id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
 						"hook" => ["type" => "varbinary(100)", "not null" => "1", "default" => "", "comment" => ""],
 						"file" => ["type" => "varbinary(200)", "not null" => "1", "default" => "", "comment" => ""],
 						"function" => ["type" => "varbinary(200)", "not null" => "1", "default" => "", "comment" => ""],
-						"priority" => ["type" => "smallint", "not null" => "1", "default" => "0", "comment" => ""],
+						"priority" => ["type" => "smallint unsigned", "not null" => "1", "default" => "0", "comment" => ""],
 						],
 				"indexes" => [
 						"PRIMARY" => ["id"],
@@ -1098,10 +1098,10 @@ class DBStructure
 		$database["intro"] = [
 				"comment" => "",
 				"fields" => [
-						"id" => ["type" => "int", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
-						"uid" => ["type" => "mediumint", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"],
-						"fid" => ["type" => "int", "not null" => "1", "default" => "0", "relation" => ["fcontact" => "id"], "comment" => ""],
-						"contact-id" => ["type" => "int", "not null" => "1", "default" => "0", "relation" => ["contact" => "id"], "comment" => ""],
+						"id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
+						"uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"],
+						"fid" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "relation" => ["fcontact" => "id"], "comment" => ""],
+						"contact-id" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "relation" => ["contact" => "id"], "comment" => ""],
 						"knowyou" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
 						"duplex" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
 						"note" => ["type" => "text", "comment" => ""],
@@ -1117,16 +1117,16 @@ class DBStructure
 		$database["item"] = [
 				"comment" => "All posts",
 				"fields" => [
-						"id" => ["type" => "int", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "relation" => ["thread" => "iid"]],
+						"id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "relation" => ["thread" => "iid"]],
 						"guid" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
 						"uri" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
-						"uid" => ["type" => "mediumint", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"],
-						"contact-id" => ["type" => "int", "not null" => "1", "default" => "0", "relation" => ["contact" => "id"], "comment" => ""],
-						"gcontact-id" => ["type" => "int", "not null" => "1", "default" => "0", "relation" => ["gcontact" => "id"], "comment" => ""],
-						"type" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
+						"uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"],
+						"contact-id" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "relation" => ["contact" => "id"], "comment" => ""],
+						"gcontact-id" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "relation" => ["gcontact" => "id"], "comment" => ""],
+						"type" => ["type" => "varchar(20)", "not null" => "1", "default" => "", "comment" => ""],
 						"wall" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
-						"gravity" => ["type" => "tinyint", "not null" => "1", "default" => "0", "comment" => ""],
-						"parent" => ["type" => "int", "not null" => "1", "default" => "0", "relation" => ["item" => "id"], "comment" => ""],
+						"gravity" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "0", "comment" => ""],
+						"parent" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "relation" => ["item" => "id"], "comment" => ""],
 						"parent-uri" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
 						"extid" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
 						"thr-parent" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
@@ -1135,26 +1135,26 @@ class DBStructure
 						"commented" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => ""],
 						"received" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => ""],
 						"changed" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => ""],
-						"owner-id" => ["type" => "int", "not null" => "1", "default" => "0", "relation" => ["contact" => "id"], "comment" => ""],
+						"owner-id" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "relation" => ["contact" => "id"], "comment" => ""],
 						"owner-name" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
 						"owner-link" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
 						"owner-avatar" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
-						"author-id" => ["type" => "int", "not null" => "1", "default" => "0", "relation" => ["contact" => "id"], "comment" => ""],
+						"author-id" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "relation" => ["contact" => "id"], "comment" => ""],
 						"author-name" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
 						"author-link" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
 						"author-avatar" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
 						"title" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
 						"body" => ["type" => "mediumtext", "comment" => ""],
 						"app" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
-						"verb" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
-						"object-type" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
+						"verb" => ["type" => "varchar(100)", "not null" => "1", "default" => "", "comment" => ""],
+						"object-type" => ["type" => "varchar(100)", "not null" => "1", "default" => "", "comment" => ""],
 						"object" => ["type" => "text", "comment" => ""],
-						"target-type" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
+						"target-type" => ["type" => "varchar(100)", "not null" => "1", "default" => "", "comment" => ""],
 						"target" => ["type" => "text", "comment" => ""],
 						"postopts" => ["type" => "text", "comment" => ""],
 						"plink" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
-						"resource-id" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
-						"event-id" => ["type" => "int", "not null" => "1", "default" => "0", "relation" => ["event" => "id"], "comment" => ""],
+						"resource-id" => ["type" => "varchar(32)", "not null" => "1", "default" => "", "comment" => ""],
+						"event-id" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "relation" => ["event" => "id"], "comment" => ""],
 						"tag" => ["type" => "mediumtext", "comment" => ""],
 						"attach" => ["type" => "mediumtext", "comment" => ""],
 						"inform" => ["type" => "mediumtext", "comment" => ""],
@@ -1175,7 +1175,7 @@ class DBStructure
 						"unseen" => ["type" => "boolean", "not null" => "1", "default" => "1", "comment" => ""],
 						"deleted" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
 						"origin" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
-						"forum_mode" => ["type" => "tinyint", "not null" => "1", "default" => "0", "comment" => ""],
+						"forum_mode" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "0", "comment" => ""],
 						"mention" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
 						"network" => ["type" => "char(4)", "not null" => "1", "default" => "", "comment" => ""],
 						"rendered-hash" => ["type" => "varchar(32)", "not null" => "1", "default" => "", "comment" => ""],
@@ -1201,10 +1201,10 @@ class DBStructure
 						"authorid_created" => ["author-id","created"],
 						"ownerid" => ["owner-id"],
 						"uid_uri" => ["uid", "uri(190)"],
-						"resource-id" => ["resource-id(191)"],
+						"resource-id" => ["resource-id"],
 						"contactid_allowcid_allowpid_denycid_denygid" => ["contact-id","allow_cid(10)","allow_gid(10)","deny_cid(10)","deny_gid(10)"], //
-						"uid_type_changed" => ["uid","type(190)","changed"],
-						"contactid_verb" => ["contact-id","verb(190)"],
+						"uid_type_changed" => ["uid","type","changed"],
+						"contactid_verb" => ["contact-id","verb"],
 						"deleted_changed" => ["deleted","changed"],
 						"uid_wall_changed" => ["uid","wall","changed"],
 						"uid_eventid" => ["uid","event-id"],
@@ -1215,10 +1215,10 @@ class DBStructure
 		$database["locks"] = [
 				"comment" => "",
 				"fields" => [
-						"id" => ["type" => "int", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
+						"id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
 						"name" => ["type" => "varchar(128)", "not null" => "1", "default" => "", "comment" => ""],
 						"locked" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
-						"pid" => ["type" => "int", "not null" => "1", "default" => "0", "comment" => ""],
+						"pid" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "comment" => ""],
 						],
 				"indexes" => [
 						"PRIMARY" => ["id"],
@@ -1227,14 +1227,14 @@ class DBStructure
 		$database["mail"] = [
 				"comment" => "private messages",
 				"fields" => [
-						"id" => ["type" => "int", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
-						"uid" => ["type" => "mediumint", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"],
+						"id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
+						"uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"],
 						"guid" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
 						"from-name" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
 						"from-photo" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
 						"from-url" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
 						"contact-id" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "relation" => ["contact" => "id"], "comment" => ""],
-						"convid" => ["type" => "int", "not null" => "1", "default" => "0", "relation" => ["conv" => "id"], "comment" => ""],
+						"convid" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "relation" => ["conv" => "id"], "comment" => ""],
 						"title" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
 						"body" => ["type" => "mediumtext", "comment" => ""],
 						"seen" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
@@ -1257,8 +1257,8 @@ class DBStructure
 		$database["mailacct"] = [
 				"comment" => "Mail account data for fetching mails",
 				"fields" => [
-						"id" => ["type" => "int", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
-						"uid" => ["type" => "mediumint", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"],
+						"id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
+						"uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"],
 						"server" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
 						"port" => ["type" => "smallint unsigned", "not null" => "1", "default" => "0", "comment" => ""],
 						"ssltype" => ["type" => "varchar(16)", "not null" => "1", "default" => "", "comment" => ""],
@@ -1266,7 +1266,7 @@ class DBStructure
 						"user" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
 						"pass" => ["type" => "text", "comment" => ""],
 						"reply_to" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
-						"action" => ["type" => "tinyint", "not null" => "1", "default" => "0", "comment" => ""],
+						"action" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "0", "comment" => ""],
 						"movetofolder" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
 						"pubmail" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
 						"last_check" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => ""],
@@ -1278,9 +1278,9 @@ class DBStructure
 		$database["manage"] = [
 				"comment" => "table of accounts that can manage each other",
 				"fields" => [
-						"id" => ["type" => "int", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
-						"uid" => ["type" => "mediumint", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"],
-						"mid" => ["type" => "mediumint", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"],
+						"id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
+						"uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"],
+						"mid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"],
 						],
 				"indexes" => [
 						"PRIMARY" => ["id"],
@@ -1290,21 +1290,21 @@ class DBStructure
 		$database["notify"] = [
 				"comment" => "notifications",
 				"fields" => [
-						"id" => ["type" => "int", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
+						"id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
 						"hash" => ["type" => "varchar(64)", "not null" => "1", "default" => "", "comment" => ""],
-						"type" => ["type" => "smallint", "not null" => "1", "default" => "0", "comment" => ""],
+						"type" => ["type" => "smallint unsigned", "not null" => "1", "default" => "0", "comment" => ""],
 						"name" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
 						"url" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
 						"photo" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
 						"date" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => ""],
 						"msg" => ["type" => "mediumtext", "comment" => ""],
-						"uid" => ["type" => "mediumint", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"],
+						"uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"],
 						"link" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
-						"iid" => ["type" => "int", "not null" => "1", "default" => "0", "relation" => ["item" => "id"], "comment" => ""],
-						"parent" => ["type" => "int", "not null" => "1", "default" => "0", "relation" => ["item" => "id"], "comment" => ""],
+						"iid" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "relation" => ["item" => "id"], "comment" => ""],
+						"parent" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "relation" => ["item" => "id"], "comment" => ""],
 						"seen" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
-						"verb" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
-						"otype" => ["type" => "varchar(16)", "not null" => "1", "default" => "", "comment" => ""],
+						"verb" => ["type" => "varchar(100)", "not null" => "1", "default" => "", "comment" => ""],
+						"otype" => ["type" => "varchar(10)", "not null" => "1", "default" => "", "comment" => ""],
 						"name_cache" => ["type" => "tinytext", "comment" => ""],
 						"msg_cache" => ["type" => "mediumtext", "comment" => ""]
 						],
@@ -1319,11 +1319,11 @@ class DBStructure
 		$database["notify-threads"] = [
 				"comment" => "",
 				"fields" => [
-						"id" => ["type" => "int", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
-						"notify-id" => ["type" => "int", "not null" => "1", "default" => "0", "relation" => ["notify" => "id"], "comment" => ""],
-						"master-parent-item" => ["type" => "int", "not null" => "1", "default" => "0", "relation" => ["item" => "id"], "comment" => ""],
-						"parent-item" => ["type" => "int", "not null" => "1", "default" => "0", "comment" => ""],
-						"receiver-uid" => ["type" => "mediumint", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"],
+						"id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
+						"notify-id" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "relation" => ["notify" => "id"], "comment" => ""],
+						"master-parent-item" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "relation" => ["item" => "id"], "comment" => ""],
+						"parent-item" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "comment" => ""],
+						"receiver-uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"],
 						],
 				"indexes" => [
 						"PRIMARY" => ["id"],
@@ -1333,7 +1333,7 @@ class DBStructure
 				"comment" => "cache for OEmbed queries",
 				"fields" => [
 						"url" => ["type" => "varbinary(255)", "not null" => "1", "primary" => "1", "comment" => ""],
-						"maxwidth" => ["type" => "mediumint", "not null" => "1", "primary" => "1", "comment" => ""],
+						"maxwidth" => ["type" => "mediumint unsigned", "not null" => "1", "primary" => "1", "comment" => ""],
 						"content" => ["type" => "mediumtext", "comment" => ""],
 						"created" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => ""],
 						],
@@ -1359,10 +1359,10 @@ class DBStructure
 		$database["participation"] = [
 				"comment" => "Storage for participation messages from Diaspora",
 				"fields" => [
-						"iid" => ["type" => "int", "not null" => "1", "primary" => "1", "relation" => ["item" => "id"], "comment" => ""],
+						"iid" => ["type" => "int unsigned", "not null" => "1", "primary" => "1", "relation" => ["item" => "id"], "comment" => ""],
 						"server" => ["type" => "varchar(60)", "not null" => "1", "primary" => "1", "comment" => ""],
-						"cid" => ["type" => "int", "not null" => "1", "relation" => ["contact" => "id"], "comment" => ""],
-						"fid" => ["type" => "int", "not null" => "1", "relation" => ["fcontact" => "id"], "comment" => ""],
+						"cid" => ["type" => "int unsigned", "not null" => "1", "relation" => ["contact" => "id"], "comment" => ""],
+						"fid" => ["type" => "int unsigned", "not null" => "1", "relation" => ["fcontact" => "id"], "comment" => ""],
 						],
 				"indexes" => [
 						"PRIMARY" => ["iid", "server"]
@@ -1371,10 +1371,10 @@ class DBStructure
 		$database["pconfig"] = [
 				"comment" => "personal (per user) configuration storage",
 				"fields" => [
-						"id" => ["type" => "int", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
-						"uid" => ["type" => "mediumint", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"],
-						"cat" => ["type" => "varbinary(255)", "not null" => "1", "default" => "", "comment" => ""],
-						"k" => ["type" => "varbinary(255)", "not null" => "1", "default" => "", "comment" => ""],
+						"id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
+						"uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"],
+						"cat" => ["type" => "varbinary(50)", "not null" => "1", "default" => "", "comment" => ""],
+						"k" => ["type" => "varbinary(100)", "not null" => "1", "default" => "", "comment" => ""],
 						"v" => ["type" => "mediumtext", "comment" => ""],
 						],
 				"indexes" => [
@@ -1385,23 +1385,23 @@ class DBStructure
 		$database["photo"] = [
 				"comment" => "photo storage",
 				"fields" => [
-						"id" => ["type" => "int", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
-						"uid" => ["type" => "mediumint", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"],
-						"contact-id" => ["type" => "int", "not null" => "1", "default" => "0", "relation" => ["contact" => "id"], "comment" => ""],
-						"guid" => ["type" => "varchar(64)", "not null" => "1", "default" => "", "comment" => ""],
-						"resource-id" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
+						"id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
+						"uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"],
+						"contact-id" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "relation" => ["contact" => "id"], "comment" => ""],
+						"guid" => ["type" => "char(16)", "not null" => "1", "default" => "", "comment" => ""],
+						"resource-id" => ["type" => "char(32)", "not null" => "1", "default" => "", "comment" => ""],
 						"created" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => ""],
 						"edited" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => ""],
 						"title" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
 						"desc" => ["type" => "text", "comment" => ""],
 						"album" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
 						"filename" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
-						"type" => ["type" => "varchar(128)", "not null" => "1", "default" => "image/jpeg"],
-						"height" => ["type" => "smallint", "not null" => "1", "default" => "0", "comment" => ""],
-						"width" => ["type" => "smallint", "not null" => "1", "default" => "0", "comment" => ""],
-						"datasize" => ["type" => "int", "not null" => "1", "default" => "0", "comment" => ""],
+						"type" => ["type" => "varchar(30)", "not null" => "1", "default" => "image/jpeg"],
+						"height" => ["type" => "smallint unsigned", "not null" => "1", "default" => "0", "comment" => ""],
+						"width" => ["type" => "smallint unsigned", "not null" => "1", "default" => "0", "comment" => ""],
+						"datasize" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "comment" => ""],
 						"data" => ["type" => "mediumblob", "not null" => "1", "comment" => ""],
-						"scale" => ["type" => "tinyint", "not null" => "1", "default" => "0", "comment" => ""],
+						"scale" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "0", "comment" => ""],
 						"profile" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
 						"allow_cid" => ["type" => "mediumtext", "comment" => ""],
 						"allow_gid" => ["type" => "mediumtext", "comment" => ""],
@@ -1414,15 +1414,15 @@ class DBStructure
 						"uid_contactid" => ["uid", "contact-id"],
 						"uid_profile" => ["uid", "profile"],
 						"uid_album_scale_created" => ["uid", "album(32)", "scale", "created"],
-						"uid_album_resource-id_created" => ["uid", "album(32)", "resource-id(64)", "created"],
-						"resource-id" => ["resource-id(64)"],
+						"uid_album_resource-id_created" => ["uid", "album(32)", "resource-id", "created"],
+						"resource-id" => ["resource-id"],
 						]
 				];
 		$database["poll"] = [
 				"comment" => "Currently unused table for storing poll results",
 				"fields" => [
-						"id" => ["type" => "int", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
-						"uid" => ["type" => "mediumint", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"],
+						"id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
+						"uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"],
 						"q0" => ["type" => "text", "comment" => ""],
 						"q1" => ["type" => "text", "comment" => ""],
 						"q2" => ["type" => "text", "comment" => ""],
@@ -1442,9 +1442,9 @@ class DBStructure
 		$database["poll_result"] = [
 				"comment" => "data for polls - currently unused",
 				"fields" => [
-						"id" => ["type" => "int", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
-						"poll_id" => ["type" => "int", "not null" => "1", "default" => "0", "relation" => ["poll" => "id"]],
-						"choice" => ["type" => "tinyint", "not null" => "1", "default" => "0", "comment" => ""],
+						"id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
+						"poll_id" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "relation" => ["poll" => "id"]],
+						"choice" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "0", "comment" => ""],
 						],
 				"indexes" => [
 						"PRIMARY" => ["id"],
@@ -1454,7 +1454,7 @@ class DBStructure
 		$database["process"] = [
 				"comment" => "Currently running system processes",
 				"fields" => [
-						"pid" => ["type" => "int", "not null" => "1", "primary" => "1", "comment" => ""],
+						"pid" => ["type" => "int unsigned", "not null" => "1", "primary" => "1", "comment" => ""],
 						"command" => ["type" => "varbinary(32)", "not null" => "1", "default" => "", "comment" => ""],
 						"created" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => ""],
 						],
@@ -1466,8 +1466,8 @@ class DBStructure
 		$database["profile"] = [
 				"comment" => "user profiles data",
 				"fields" => [
-						"id" => ["type" => "int", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
-						"uid" => ["type" => "mediumint", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"],
+						"id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
+						"uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"],
 						"profile-name" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
 						"is-default" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
 						"hide-friends" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
@@ -1517,12 +1517,12 @@ class DBStructure
 		$database["profile_check"] = [
 				"comment" => "DFRN remote auth use",
 				"fields" => [
-						"id" => ["type" => "int", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
-						"uid" => ["type" => "mediumint", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"],
-						"cid" => ["type" => "int", "not null" => "1", "default" => "0", "relation" => ["contact" => "id"], "comment" => ""],
+						"id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
+						"uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"],
+						"cid" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "relation" => ["contact" => "id"], "comment" => ""],
 						"dfrn_id" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
 						"sec" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
-						"expire" => ["type" => "int", "not null" => "1", "default" => "0", "comment" => ""],
+						"expire" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "comment" => ""],
 						],
 				"indexes" => [
 						"PRIMARY" => ["id"],
@@ -1531,12 +1531,12 @@ class DBStructure
 		$database["push_subscriber"] = [
 				"comment" => "Used for OStatus: Contains feed subscribers",
 				"fields" => [
-						"id" => ["type" => "int", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
-						"uid" => ["type" => "mediumint", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"],
+						"id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
+						"uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"],
 						"callback_url" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
 						"topic" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
 						"nickname" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
-						"push" => ["type" => "tinyint", "not null" => "1", "default" => "0", "comment" => ""],
+						"push" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "0", "comment" => ""],
 						"last_update" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => ""],
 						"secret" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
 						],
@@ -1547,8 +1547,8 @@ class DBStructure
 		$database["queue"] = [
 				"comment" => "Queue for messages that couldn't be delivered",
 				"fields" => [
-						"id" => ["type" => "int", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
-						"cid" => ["type" => "int", "not null" => "1", "default" => "0", "relation" => ["contact" => "id"], "comment" => "Message receiver"],
+						"id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
+						"cid" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "relation" => ["contact" => "id"], "comment" => "Message receiver"],
 						"network" => ["type" => "char(4)", "not null" => "1", "default" => "", "comment" => "Receiver's network"],
 						"guid" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => "Unique GUID of the message"],
 						"created" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => "Date, when the message was created"],
@@ -1567,10 +1567,10 @@ class DBStructure
 		$database["register"] = [
 				"comment" => "registrations requiring admin approval",
 				"fields" => [
-						"id" => ["type" => "int", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
+						"id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
 						"hash" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
 						"created" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => ""],
-						"uid" => ["type" => "mediumint", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"],
+						"uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"],
 						"password" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
 						"language" => ["type" => "varchar(16)", "not null" => "1", "default" => "", "comment" => ""],
 						"note" => ["type" => "text", "comment" => ""],
@@ -1582,8 +1582,8 @@ class DBStructure
 		$database["search"] = [
 				"comment" => "",
 				"fields" => [
-						"id" => ["type" => "int", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
-						"uid" => ["type" => "mediumint", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"],
+						"id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
+						"uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"],
 						"term" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
 						],
 				"indexes" => [
@@ -1594,10 +1594,10 @@ class DBStructure
 		$database["session"] = [
 				"comment" => "web session storage",
 				"fields" => [
-						"id" => ["type" => "bigint", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
+						"id" => ["type" => "bigint unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
 						"sid" => ["type" => "varbinary(255)", "not null" => "1", "default" => "", "comment" => ""],
 						"data" => ["type" => "text", "comment" => ""],
-						"expire" => ["type" => "int", "not null" => "1", "default" => "0", "comment" => ""],
+						"expire" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "comment" => ""],
 						],
 				"indexes" => [
 						"PRIMARY" => ["id"],
@@ -1608,8 +1608,8 @@ class DBStructure
 		$database["sign"] = [
 				"comment" => "Diaspora signatures",
 				"fields" => [
-						"id" => ["type" => "int", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
-						"iid" => ["type" => "int", "not null" => "1", "default" => "0", "relation" => ["item" => "id"], "comment" => ""],
+						"id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
+						"iid" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "relation" => ["item" => "id"], "comment" => ""],
 						"signed_text" => ["type" => "mediumtext", "comment" => ""],
 						"signature" => ["type" => "text", "comment" => ""],
 						"signer" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
@@ -1622,18 +1622,18 @@ class DBStructure
 		$database["term"] = [
 				"comment" => "item taxonomy (categories, tags, etc.) table",
 				"fields" => [
-						"tid" => ["type" => "int", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
-						"oid" => ["type" => "int", "not null" => "1", "default" => "0", "relation" => ["item" => "id"], "comment" => ""],
-						"otype" => ["type" => "tinyint", "not null" => "1", "default" => "0", "comment" => ""],
-						"type" => ["type" => "tinyint", "not null" => "1", "default" => "0", "comment" => ""],
+						"tid" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
+						"oid" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "relation" => ["item" => "id"], "comment" => ""],
+						"otype" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "0", "comment" => ""],
+						"type" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "0", "comment" => ""],
 						"term" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
 						"url" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
 						"guid" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
 						"created" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => ""],
 						"received" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => ""],
 						"global" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
-						"aid" => ["type" => "int", "not null" => "1", "default" => "0", "comment" => ""],
-						"uid" => ["type" => "mediumint", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"],
+						"aid" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "comment" => ""],
+						"uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"],
 						],
 				"indexes" => [
 						"PRIMARY" => ["tid"],
@@ -1646,12 +1646,12 @@ class DBStructure
 		$database["thread"] = [
 				"comment" => "Thread related data",
 				"fields" => [
-						"iid" => ["type" => "int", "not null" => "1", "default" => "0", "primary" => "1", "relation" => ["item" => "id"], "comment" => ""],
-						"uid" => ["type" => "mediumint", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"],
-						"contact-id" => ["type" => "int", "not null" => "1", "default" => "0", "relation" => ["contact" => "id"], "comment" => ""],
-						"gcontact-id" => ["type" => "int", "not null" => "1", "default" => "0", "relation" => ["gcontact" => "id"], "comment" => ""],
-						"owner-id" => ["type" => "int", "not null" => "1", "default" => "0", "relation" => ["contact" => "id"], "comment" => ""],
-						"author-id" => ["type" => "int", "not null" => "1", "default" => "0", "relation" => ["contact" => "id"], "comment" => ""],
+						"iid" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "primary" => "1", "relation" => ["item" => "id"], "comment" => ""],
+						"uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"],
+						"contact-id" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "relation" => ["contact" => "id"], "comment" => ""],
+						"gcontact-id" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "relation" => ["gcontact" => "id"], "comment" => ""],
+						"owner-id" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "relation" => ["contact" => "id"], "comment" => ""],
+						"author-id" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "relation" => ["contact" => "id"], "comment" => ""],
 						"created" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => ""],
 						"edited" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => ""],
 						"commented" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => ""],
@@ -1669,7 +1669,7 @@ class DBStructure
 						"unseen" => ["type" => "boolean", "not null" => "1", "default" => "1", "comment" => ""],
 						"deleted" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
 						"origin" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
-						"forum_mode" => ["type" => "tinyint", "not null" => "1", "default" => "0", "comment" => ""],
+						"forum_mode" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "0", "comment" => ""],
 						"mention" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
 						"network" => ["type" => "char(4)", "not null" => "1", "default" => "", "comment" => ""],
 						],
@@ -1696,7 +1696,7 @@ class DBStructure
 						"client_id" => ["type" => "varchar(20)", "not null" => "1", "default" => "", "relation" => ["clients" => "client_id"]],
 						"expires" => ["type" => "int", "not null" => "1", "default" => "0", "comment" => ""],
 						"scope" => ["type" => "varchar(200)", "not null" => "1", "default" => "", "comment" => ""],
-						"uid" => ["type" => "mediumint", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"],
+						"uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"],
 						],
 				"indexes" => [
 						"PRIMARY" => ["id"],
@@ -1705,8 +1705,8 @@ class DBStructure
 		$database["user"] = [
 				"comment" => "The local users",
 				"fields" => [
-						"uid" => ["type" => "mediumint", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
-						"parent-uid" => ["type" => "mediumint", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "The parent user that has full control about this user"],
+						"uid" => ["type" => "mediumint unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
+						"parent-uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "The parent user that has full control about this user"],
 						"guid" => ["type" => "varchar(64)", "not null" => "1", "default" => "", "comment" => ""],
 						"username" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
 						"password" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
@@ -1731,20 +1731,20 @@ class DBStructure
 						"hidewall" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
 						"blocktags" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
 						"unkmail" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
-						"cntunkmail" => ["type" => "int", "not null" => "1", "default" => "10", "comment" => ""],
+						"cntunkmail" => ["type" => "int unsigned", "not null" => "1", "default" => "10", "comment" => ""],
 						"notify-flags" => ["type" => "smallint unsigned", "not null" => "1", "default" => "65535", "comment" => ""],
-						"page-flags" => ["type" => "tinyint", "not null" => "1", "default" => "0", "comment" => ""],
-						"account-type" => ["type" => "tinyint", "not null" => "1", "default" => "0", "comment" => ""],
+						"page-flags" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "0", "comment" => ""],
+						"account-type" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "0", "comment" => ""],
 						"prvnets" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
 						"pwdreset" => ["type" => "varchar(255)", "comment" => "Password reset request token"],
 						"pwdreset_time" => ["type" => "datetime", "comment" => "Timestamp of the last password reset request"],
-						"maxreq" => ["type" => "int", "not null" => "1", "default" => "10", "comment" => ""],
-						"expire" => ["type" => "int", "not null" => "1", "default" => "0", "comment" => ""],
+						"maxreq" => ["type" => "int unsigned", "not null" => "1", "default" => "10", "comment" => ""],
+						"expire" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "comment" => ""],
 						"account_removed" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
 						"account_expired" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
 						"account_expires_on" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => ""],
 						"expire_notification_sent" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => ""],
-						"def_gid" => ["type" => "int", "not null" => "1", "default" => "0", "comment" => ""],
+						"def_gid" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "comment" => ""],
 						"allow_cid" => ["type" => "mediumtext", "comment" => ""],
 						"allow_gid" => ["type" => "mediumtext", "comment" => ""],
 						"deny_cid" => ["type" => "mediumtext", "comment" => ""],
@@ -1759,7 +1759,7 @@ class DBStructure
 		$database["userd"] = [
 				"comment" => "Deleted usernames",
 				"fields" => [
-						"id" => ["type" => "int", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
+						"id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
 						"username" => ["type" => "varchar(255)", "not null" => "1", "comment" => ""],
 						],
 				"indexes" => [
@@ -1770,11 +1770,11 @@ class DBStructure
 		$database["workerqueue"] = [
 				"comment" => "Background tasks queue entries",
 				"fields" => [
-						"id" => ["type" => "int", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => "Auto incremented worker task id"],
+						"id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => "Auto incremented worker task id"],
 						"parameter" => ["type" => "mediumblob", "comment" => "Task command"],
-						"priority" => ["type" => "tinyint", "not null" => "1", "default" => "0", "comment" => "Task priority"],
+						"priority" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "0", "comment" => "Task priority"],
 						"created" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => "Creation date"],
-						"pid" => ["type" => "int", "not null" => "1", "default" => "0", "comment" => "Process id of the worker"],
+						"pid" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "comment" => "Process id of the worker"],
 						"executed" => ["type" => "datetime", "not null" => "1", "default" => NULL_DATE, "comment" => "Execution date"],
 						"done" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "Marked when the task was done, will be deleted later"],
 						],
-- 
2.39.5