X-Git-Url: https://reisub.nsupdate.info/git/?a=blobdiff_plain;f=database.sql;h=60d4b1c88e0429159f1983c96be2e296bbecd317;hb=96ed7525b733111dbeca2cd672f85188ce369fef;hp=ffe02585e2be257fd6e09c6e4cb5d5c2a78c65f5;hpb=b654af28fa417459b14289036cdac0c6a7844b9e;p=friendica.git%2F.git diff --git a/database.sql b/database.sql index ffe02585e2..60d4b1c88e 100644 --- a/database.sql +++ b/database.sql @@ -1,6 +1,6 @@ -- ------------------------------------------ -- Friendica 2018.08-dev (The Tazmans Flax-lily) --- DB_UPDATE_VERSION 1267 +-- DB_UPDATE_VERSION 1283 -- ------------------------------------------ @@ -17,7 +17,7 @@ CREATE TABLE IF NOT EXISTS `addon` ( `plugin_admin` boolean NOT NULL DEFAULT '0' COMMENT '1 = has admin config, 0 = has no admin config', PRIMARY KEY(`id`), UNIQUE INDEX `name` (`name`) -) DEFAULT COLLATE utf8mb4_general_ci; +) DEFAULT COLLATE utf8mb4_general_ci COMMENT='registered addons'; -- -- TABLE attach @@ -37,7 +37,7 @@ CREATE TABLE IF NOT EXISTS `attach` ( `deny_cid` mediumtext COMMENT 'Access Control - list of denied contact.id', `deny_gid` mediumtext COMMENT 'Access Control - list of denied groups', PRIMARY KEY(`id`) -) DEFAULT COLLATE utf8mb4_general_ci; +) DEFAULT COLLATE utf8mb4_general_ci COMMENT='file attachments'; -- -- TABLE auth_codes @@ -49,7 +49,7 @@ CREATE TABLE IF NOT EXISTS `auth_codes` ( `expires` int NOT NULL DEFAULT 0 COMMENT '', `scope` varchar(250) NOT NULL DEFAULT '' COMMENT '', PRIMARY KEY(`id`) -) DEFAULT COLLATE utf8mb4_general_ci; +) DEFAULT COLLATE utf8mb4_general_ci COMMENT='OAuth usage'; -- -- TABLE cache @@ -61,7 +61,7 @@ CREATE TABLE IF NOT EXISTS `cache` ( `updated` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT 'datetime of cache insertion', PRIMARY KEY(`k`), INDEX `k_expires` (`k`,`expires`) -) DEFAULT COLLATE utf8mb4_general_ci; +) DEFAULT COLLATE utf8mb4_general_ci COMMENT='Stores temporary data'; -- -- TABLE challenge @@ -74,7 +74,7 @@ CREATE TABLE IF NOT EXISTS `challenge` ( `type` varchar(255) NOT NULL DEFAULT '' COMMENT '', `last_update` varchar(255) NOT NULL DEFAULT '' COMMENT '', PRIMARY KEY(`id`) -) DEFAULT COLLATE utf8mb4_general_ci; +) DEFAULT COLLATE utf8mb4_general_ci COMMENT=''; -- -- TABLE clients @@ -87,7 +87,7 @@ CREATE TABLE IF NOT EXISTS `clients` ( `icon` text COMMENT '', `uid` mediumint unsigned NOT NULL DEFAULT 0 COMMENT 'User id', PRIMARY KEY(`client_id`) -) DEFAULT COLLATE utf8mb4_general_ci; +) DEFAULT COLLATE utf8mb4_general_ci COMMENT='OAuth usage'; -- -- TABLE config @@ -99,7 +99,7 @@ CREATE TABLE IF NOT EXISTS `config` ( `v` mediumtext COMMENT '', PRIMARY KEY(`id`), UNIQUE INDEX `cat_k` (`cat`,`k`) -) DEFAULT COLLATE utf8mb4_general_ci; +) DEFAULT COLLATE utf8mb4_general_ci COMMENT='main configuration storage'; -- -- TABLE contact @@ -186,7 +186,7 @@ CREATE TABLE IF NOT EXISTS `contact` ( INDEX `nick_uid` (`nick`(32),`uid`), INDEX `dfrn-id` (`dfrn-id`(64)), INDEX `issued-id` (`issued-id`(64)) -) DEFAULT COLLATE utf8mb4_general_ci; +) DEFAULT COLLATE utf8mb4_general_ci COMMENT='contact table'; -- -- TABLE conv @@ -202,13 +202,13 @@ CREATE TABLE IF NOT EXISTS `conv` ( `subject` text COMMENT 'subject of initial message', PRIMARY KEY(`id`), INDEX `uid` (`uid`) -) DEFAULT COLLATE utf8mb4_general_ci; +) DEFAULT COLLATE utf8mb4_general_ci COMMENT='private messages'; -- -- TABLE conversation -- CREATE TABLE IF NOT EXISTS `conversation` ( - `item-uri` varbinary(255) NOT NULL COMMENT 'URI of the item', + `item-uri` varbinary(255) NOT NULL COMMENT 'Original URI of the item - unrelated to the table with the same name', `reply-to-uri` varbinary(255) NOT NULL DEFAULT '' COMMENT 'URI to which this item is a reply', `conversation-uri` varbinary(255) NOT NULL DEFAULT '' COMMENT 'GNU Social conversation URI', `conversation-href` varbinary(255) NOT NULL DEFAULT '' COMMENT 'GNU Social conversation link', @@ -218,7 +218,7 @@ CREATE TABLE IF NOT EXISTS `conversation` ( PRIMARY KEY(`item-uri`), INDEX `conversation-uri` (`conversation-uri`), INDEX `received` (`received`) -) DEFAULT COLLATE utf8mb4_general_ci; +) DEFAULT COLLATE utf8mb4_general_ci COMMENT='Raw data and structure information for messages'; -- -- TABLE event @@ -246,7 +246,7 @@ CREATE TABLE IF NOT EXISTS `event` ( `deny_gid` mediumtext COMMENT 'Access Control - list of denied groups', PRIMARY KEY(`id`), INDEX `uid_start` (`uid`,`start`) -) DEFAULT COLLATE utf8mb4_general_ci; +) DEFAULT COLLATE utf8mb4_general_ci COMMENT='Events'; -- -- TABLE fcontact @@ -272,7 +272,7 @@ CREATE TABLE IF NOT EXISTS `fcontact` ( PRIMARY KEY(`id`), INDEX `addr` (`addr`(32)), UNIQUE INDEX `url` (`url`(190)) -) DEFAULT COLLATE utf8mb4_general_ci; +) DEFAULT COLLATE utf8mb4_general_ci COMMENT='Diaspora compatible contacts - used in the Diaspora implementation'; -- -- TABLE fsuggest @@ -288,7 +288,7 @@ CREATE TABLE IF NOT EXISTS `fsuggest` ( `note` text COMMENT '', `created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '', PRIMARY KEY(`id`) -) DEFAULT COLLATE utf8mb4_general_ci; +) DEFAULT COLLATE utf8mb4_general_ci COMMENT='friend suggestion stuff'; -- -- TABLE gcign @@ -300,7 +300,7 @@ CREATE TABLE IF NOT EXISTS `gcign` ( PRIMARY KEY(`id`), INDEX `uid` (`uid`), INDEX `gcid` (`gcid`) -) DEFAULT COLLATE utf8mb4_general_ci; +) DEFAULT COLLATE utf8mb4_general_ci COMMENT='contacts ignored by friend suggestions'; -- -- TABLE gcontact @@ -339,7 +339,7 @@ CREATE TABLE IF NOT EXISTS `gcontact` ( INDEX `addr` (`addr`(64)), INDEX `hide_network_updated` (`hide`,`network`,`updated`), INDEX `updated` (`updated`) -) DEFAULT COLLATE utf8mb4_general_ci; +) DEFAULT COLLATE utf8mb4_general_ci COMMENT='global contacts'; -- -- TABLE glink @@ -354,7 +354,7 @@ CREATE TABLE IF NOT EXISTS `glink` ( PRIMARY KEY(`id`), UNIQUE INDEX `cid_uid_gcid_zcid` (`cid`,`uid`,`gcid`,`zcid`), INDEX `gcid` (`gcid`) -) DEFAULT COLLATE utf8mb4_general_ci; +) DEFAULT COLLATE utf8mb4_general_ci COMMENT='\'friends of friends\' linkages derived from poco'; -- -- TABLE group @@ -367,7 +367,7 @@ CREATE TABLE IF NOT EXISTS `group` ( `name` varchar(255) NOT NULL DEFAULT '' COMMENT 'human readable name of group', PRIMARY KEY(`id`), INDEX `uid` (`uid`) -) DEFAULT COLLATE utf8mb4_general_ci; +) DEFAULT COLLATE utf8mb4_general_ci COMMENT='privacy groups, group info'; -- -- TABLE group_member @@ -375,11 +375,11 @@ CREATE TABLE IF NOT EXISTS `group` ( CREATE TABLE IF NOT EXISTS `group_member` ( `id` int unsigned NOT NULL auto_increment COMMENT 'sequential ID', `gid` int unsigned NOT NULL DEFAULT 0 COMMENT 'groups.id of the associated group', - `contact-id` int unsigned NOT NULL DEFAULT 0 COMMENT 'contact.id of the member assigned to the associated group', + `contact-id` int unsigned NOT NULL DEFAULT 0 COMMENT 'contact.id of the member assigned to the associated group', PRIMARY KEY(`id`), INDEX `contactid` (`contact-id`), UNIQUE INDEX `gid_contactid` (`gid`,`contact-id`) -) DEFAULT COLLATE utf8mb4_general_ci; +) DEFAULT COLLATE utf8mb4_general_ci COMMENT='privacy groups, member info'; -- -- TABLE gserver @@ -405,7 +405,7 @@ CREATE TABLE IF NOT EXISTS `gserver` ( `last_failure` datetime DEFAULT '0001-01-01 00:00:00' COMMENT '', PRIMARY KEY(`id`), UNIQUE INDEX `nurl` (`nurl`(190)) -) DEFAULT COLLATE utf8mb4_general_ci; +) DEFAULT COLLATE utf8mb4_general_ci COMMENT='Global servers'; -- -- TABLE gserver-tag @@ -415,7 +415,7 @@ CREATE TABLE IF NOT EXISTS `gserver-tag` ( `tag` varchar(100) NOT NULL DEFAULT '' COMMENT 'Tag that the server has subscribed', PRIMARY KEY(`gserver-id`,`tag`), INDEX `tag` (`tag`) -) DEFAULT COLLATE utf8mb4_general_ci; +) DEFAULT COLLATE utf8mb4_general_ci COMMENT='Tags that the server has subscribed'; -- -- TABLE hook @@ -428,7 +428,7 @@ CREATE TABLE IF NOT EXISTS `hook` ( `priority` smallint unsigned NOT NULL DEFAULT 0 COMMENT 'not yet implemented - can be used to sort conflicts in hook handling by calling handlers in priority order', PRIMARY KEY(`id`), UNIQUE INDEX `hook_file_function` (`hook`,`file`,`function`) -) DEFAULT COLLATE utf8mb4_general_ci; +) DEFAULT COLLATE utf8mb4_general_ci COMMENT='addon hook registry'; -- -- TABLE intro @@ -446,7 +446,7 @@ CREATE TABLE IF NOT EXISTS `intro` ( `blocked` boolean NOT NULL DEFAULT '1' COMMENT '', `ignore` boolean NOT NULL DEFAULT '0' COMMENT '', PRIMARY KEY(`id`) -) DEFAULT COLLATE utf8mb4_general_ci; +) DEFAULT COLLATE utf8mb4_general_ci COMMENT=''; -- -- TABLE item @@ -455,66 +455,74 @@ CREATE TABLE IF NOT EXISTS `item` ( `id` int unsigned NOT NULL auto_increment, `guid` varchar(255) NOT NULL DEFAULT '' COMMENT 'A unique identifier for this item', `uri` varchar(255) NOT NULL DEFAULT '' COMMENT '', - `uid` mediumint unsigned NOT NULL DEFAULT 0 COMMENT 'Owner id which owns this copy of the item', - `contact-id` int unsigned NOT NULL DEFAULT 0 COMMENT 'contact.id', - `type` varchar(20) NOT NULL DEFAULT '' COMMENT '', - `wall` boolean NOT NULL DEFAULT '0' COMMENT 'This item was posted to the wall of uid', - `gravity` tinyint unsigned NOT NULL DEFAULT 0 COMMENT '', + `uri-id` int unsigned COMMENT 'Id of the item-uri table entry that contains the item uri', + `uri-hash` varchar(80) NOT NULL DEFAULT '' COMMENT 'RIPEMD-128 hash from uri', `parent` int unsigned NOT NULL DEFAULT 0 COMMENT 'item.id of the parent to this item if it is a reply of some form; otherwise this must be set to the id of this item', `parent-uri` varchar(255) NOT NULL DEFAULT '' COMMENT 'uri of the parent to this item', - `extid` varchar(255) NOT NULL DEFAULT '' COMMENT '', + `parent-uri-id` int unsigned COMMENT 'Id of the item-uri table that contains the parent uri', `thr-parent` varchar(255) NOT NULL DEFAULT '' COMMENT 'If the parent of this item is not the top-level item in the conversation, the uri of the immediate parent; otherwise set to parent-uri', + `thr-parent-id` int unsigned COMMENT 'Id of the item-uri table that contains the thread parent uri', `created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT 'Creation timestamp.', `edited` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT 'Date of last edit (default is created)', `commented` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT 'Date of last comment/reply to this item', `received` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT 'datetime', `changed` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT 'Date that something in the conversation changed, indicating clients should fetch the conversation again', + `gravity` tinyint unsigned NOT NULL DEFAULT 0 COMMENT '', + `network` char(4) NOT NULL DEFAULT '' COMMENT 'Network from where the item comes from', `owner-id` int unsigned NOT NULL DEFAULT 0 COMMENT 'Link to the contact table with uid=0 of the owner of this item', - `owner-name` varchar(255) NOT NULL DEFAULT '' COMMENT 'Name of the owner of this item', - `owner-link` varchar(255) NOT NULL DEFAULT '' COMMENT 'Link to the profile page of the owner of this item', - `owner-avatar` varchar(255) NOT NULL DEFAULT '' COMMENT 'Link to the avatar picture of the owner of this item', `author-id` int unsigned NOT NULL DEFAULT 0 COMMENT 'Link to the contact table with uid=0 of the author of this item', - `author-name` varchar(255) NOT NULL DEFAULT '' COMMENT 'Name of the author of this item', - `author-link` varchar(255) NOT NULL DEFAULT '' COMMENT 'Link to the profile page of the author of this item', - `author-avatar` varchar(255) NOT NULL DEFAULT '' COMMENT 'Link to the avatar picture of the author of this item', - `title` varchar(255) NOT NULL DEFAULT '' COMMENT 'item title', - `content-warning` varchar(255) NOT NULL DEFAULT '' COMMENT '', - `body` mediumtext COMMENT 'item body content', - `app` varchar(255) NOT NULL DEFAULT '' COMMENT 'application which generated this item', - `verb` varchar(100) NOT NULL DEFAULT '' COMMENT 'ActivityStreams verb', - `object-type` varchar(100) NOT NULL DEFAULT '' COMMENT 'ActivityStreams object type', - `object` text COMMENT 'JSON encoded object structure unless it is an implied object (normal post)', - `target-type` varchar(100) NOT NULL DEFAULT '' COMMENT 'ActivityStreams target type if applicable (URI)', - `target` text COMMENT 'JSON encoded target structure if used', - `postopts` text COMMENT 'External post connectors add their network name to this comma-separated string to identify that they should be delivered to these networks during delivery', - `plink` varchar(255) NOT NULL DEFAULT '' COMMENT 'permalink or URL to a displayable copy of the message at its source', - `resource-id` varchar(32) NOT NULL DEFAULT '' COMMENT 'Used to link other tables to items, it identifies the linked resource (e.g. photo) and if set must also set resource_type', - `event-id` int unsigned NOT NULL DEFAULT 0 COMMENT 'Used to link to the event.id', - `tag` mediumtext COMMENT '', - `attach` mediumtext COMMENT 'JSON structure representing attachments to this item', - `inform` mediumtext COMMENT '', - `file` mediumtext COMMENT '', - `location` varchar(255) NOT NULL DEFAULT '' COMMENT 'text location where this item originated', - `coord` varchar(255) NOT NULL DEFAULT '' COMMENT 'longitude/latitude pair representing location where this item originated', - `allow_cid` mediumtext COMMENT 'Access Control - list of allowed contact.id \'<19><78>\'', - `allow_gid` mediumtext COMMENT 'Access Control - list of allowed groups', - `deny_cid` mediumtext COMMENT 'Access Control - list of denied contact.id', - `deny_gid` mediumtext COMMENT 'Access Control - list of denied groups', + `icid` int unsigned COMMENT 'Id of the item-content table entry that contains the whole item content', + `iaid` int unsigned COMMENT 'Id of the item-activity table entry that contains the activity data', + `extid` varchar(255) NOT NULL DEFAULT '' COMMENT '', + `post-type` tinyint unsigned NOT NULL DEFAULT 0 COMMENT 'Post type (personal note, bookmark, ...)', + `global` boolean NOT NULL DEFAULT '0' COMMENT '', `private` boolean NOT NULL DEFAULT '0' COMMENT 'distribution is restricted', - `pubmail` boolean NOT NULL DEFAULT '0' COMMENT '', - `moderated` boolean NOT NULL DEFAULT '0' COMMENT '', `visible` boolean NOT NULL DEFAULT '0' COMMENT '', - `starred` boolean NOT NULL DEFAULT '0' COMMENT 'item has been favourited', - `bookmark` boolean NOT NULL DEFAULT '0' COMMENT 'item has been bookmarked', - `unseen` boolean NOT NULL DEFAULT '1' COMMENT 'item has not been seen', + `moderated` boolean NOT NULL DEFAULT '0' COMMENT '', `deleted` boolean NOT NULL DEFAULT '0' COMMENT 'item has been deleted', + `uid` mediumint unsigned NOT NULL DEFAULT 0 COMMENT 'Owner id which owns this copy of the item', + `contact-id` int unsigned NOT NULL DEFAULT 0 COMMENT 'contact.id', + `wall` boolean NOT NULL DEFAULT '0' COMMENT 'This item was posted to the wall of uid', `origin` boolean NOT NULL DEFAULT '0' COMMENT 'item originated at this site', - `forum_mode` tinyint unsigned NOT NULL DEFAULT 0 COMMENT '', + `pubmail` boolean NOT NULL DEFAULT '0' COMMENT '', + `starred` boolean NOT NULL DEFAULT '0' COMMENT 'item has been favourited', + `unseen` boolean NOT NULL DEFAULT '1' COMMENT 'item has not been seen', `mention` boolean NOT NULL DEFAULT '0' COMMENT 'The owner of this item was mentioned in it', - `network` char(4) NOT NULL DEFAULT '' COMMENT 'Network from where the item comes from', - `rendered-hash` varchar(32) NOT NULL DEFAULT '' COMMENT '', - `rendered-html` mediumtext COMMENT 'item.body converted to html', - `global` boolean NOT NULL DEFAULT '0' COMMENT '', + `forum_mode` tinyint unsigned NOT NULL DEFAULT 0 COMMENT '', + `psid` int unsigned COMMENT 'ID of the permission set of this post', + `resource-id` varchar(32) NOT NULL DEFAULT '' COMMENT 'Used to link other tables to items, it identifies the linked resource (e.g. photo) and if set must also set resource_type', + `event-id` int unsigned NOT NULL DEFAULT 0 COMMENT 'Used to link to the event.id', + `attach` mediumtext COMMENT 'JSON structure representing attachments to this item', + `allow_cid` mediumtext COMMENT 'Deprecated', + `allow_gid` mediumtext COMMENT 'Deprecated', + `deny_cid` mediumtext COMMENT 'Deprecated', + `deny_gid` mediumtext COMMENT 'Deprecated', + `postopts` text COMMENT 'Deprecated', + `inform` mediumtext COMMENT 'Deprecated', + `type` varchar(20) COMMENT 'Deprecated', + `bookmark` boolean COMMENT 'Deprecated', + `file` mediumtext COMMENT 'Deprecated', + `location` varchar(255) COMMENT 'Deprecated', + `coord` varchar(255) COMMENT 'Deprecated', + `tag` mediumtext COMMENT 'Deprecated', + `plink` varchar(255) COMMENT 'Deprecated', + `title` varchar(255) COMMENT 'Deprecated', + `content-warning` varchar(255) COMMENT 'Deprecated', + `body` mediumtext COMMENT 'Deprecated', + `app` varchar(255) COMMENT 'Deprecated', + `verb` varchar(100) COMMENT 'Deprecated', + `object-type` varchar(100) COMMENT 'Deprecated', + `object` text COMMENT 'Deprecated', + `target-type` varchar(100) COMMENT 'Deprecated', + `target` text COMMENT 'Deprecated', + `author-name` varchar(255) COMMENT 'Deprecated', + `author-link` varchar(255) COMMENT 'Deprecated', + `author-avatar` varchar(255) COMMENT 'Deprecated', + `owner-name` varchar(255) COMMENT 'Deprecated', + `owner-link` varchar(255) COMMENT 'Deprecated', + `owner-avatar` varchar(255) COMMENT 'Deprecated', + `rendered-hash` varchar(32) COMMENT 'Deprecated', + `rendered-html` mediumtext COMMENT 'Deprecated', PRIMARY KEY(`id`), INDEX `guid` (`guid`(191)), INDEX `uri` (`uri`(191)), @@ -535,15 +543,77 @@ CREATE TABLE IF NOT EXISTS `item` ( INDEX `ownerid` (`owner-id`), INDEX `uid_uri` (`uid`,`uri`(190)), INDEX `resource-id` (`resource-id`), - 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`,`changed`), - INDEX `contactid_verb` (`contact-id`,`verb`), 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; + INDEX `icid` (`icid`), + INDEX `iaid` (`iaid`), + INDEX `psid_wall` (`psid`,`wall`) +) DEFAULT COLLATE utf8mb4_general_ci COMMENT='Structure for all posts'; + +-- +-- TABLE item-activity +-- +CREATE TABLE IF NOT EXISTS `item-activity` ( + `id` int unsigned NOT NULL auto_increment, + `uri` varchar(255) COMMENT '', + `uri-id` int unsigned COMMENT 'Id of the item-uri table entry that contains the item uri', + `uri-hash` varchar(80) NOT NULL DEFAULT '' COMMENT 'RIPEMD-128 hash from uri', + `activity` smallint unsigned NOT NULL DEFAULT 0 COMMENT '', + PRIMARY KEY(`id`), + UNIQUE INDEX `uri-hash` (`uri-hash`), + INDEX `uri` (`uri`(191)) +) DEFAULT COLLATE utf8mb4_general_ci COMMENT='Activities for items'; + +-- +-- TABLE item-content +-- +CREATE TABLE IF NOT EXISTS `item-content` ( + `id` int unsigned NOT NULL auto_increment, + `uri` varchar(255) COMMENT '', + `uri-id` int unsigned COMMENT 'Id of the item-uri table entry that contains the item uri', + `uri-plink-hash` varchar(80) NOT NULL DEFAULT '' COMMENT 'RIPEMD-128 hash from uri', + `title` varchar(255) NOT NULL DEFAULT '' COMMENT 'item title', + `content-warning` varchar(255) NOT NULL DEFAULT '' COMMENT '', + `body` mediumtext COMMENT 'item body content', + `location` varchar(255) NOT NULL DEFAULT '' COMMENT 'text location where this item originated', + `coord` varchar(255) NOT NULL DEFAULT '' COMMENT 'longitude/latitude pair representing location where this item originated', + `language` text COMMENT 'Language information about this post', + `app` varchar(255) NOT NULL DEFAULT '' COMMENT 'application which generated this item', + `rendered-hash` varchar(32) NOT NULL DEFAULT '' COMMENT '', + `rendered-html` mediumtext COMMENT 'item.body converted to html', + `object-type` varchar(100) NOT NULL DEFAULT '' COMMENT 'ActivityStreams object type', + `object` text COMMENT 'JSON encoded object structure unless it is an implied object (normal post)', + `target-type` varchar(100) NOT NULL DEFAULT '' COMMENT 'ActivityStreams target type if applicable (URI)', + `target` text COMMENT 'JSON encoded target structure if used', + `plink` varchar(255) NOT NULL DEFAULT '' COMMENT 'permalink or URL to a displayable copy of the message at its source', + `verb` varchar(100) NOT NULL DEFAULT '' COMMENT 'ActivityStreams verb', + PRIMARY KEY(`id`), + UNIQUE INDEX `uri-plink-hash` (`uri-plink-hash`), + INDEX `uri` (`uri`(191)) +) DEFAULT COLLATE utf8mb4_general_ci COMMENT='Content for all posts'; + +-- +-- TABLE item-delivery-data +-- +CREATE TABLE IF NOT EXISTS `item-delivery-data` ( + `iid` int unsigned NOT NULL COMMENT 'Item id', + `postopts` text COMMENT 'External post connectors add their network name to this comma-separated string to identify that they should be delivered to these networks during delivery', + `inform` mediumtext COMMENT 'Additional receivers of the linked item', + PRIMARY KEY(`iid`) +) DEFAULT COLLATE utf8mb4_general_ci COMMENT='Delivery data for items'; + +-- +-- TABLE item-uri +-- +CREATE TABLE IF NOT EXISTS `item-uri` ( + `id` int unsigned NOT NULL auto_increment, + `uri` varbinary(255) NOT NULL COMMENT 'URI of an item', + `guid` varbinary(255) COMMENT 'A unique identifier for an item', + PRIMARY KEY(`id`), + UNIQUE INDEX `uri` (`uri`), + INDEX `guid` (`guid`) +) DEFAULT COLLATE utf8mb4_general_ci COMMENT='URI and GUID for items'; -- -- TABLE locks @@ -553,8 +623,10 @@ CREATE TABLE IF NOT EXISTS `locks` ( `name` varchar(128) NOT NULL DEFAULT '' COMMENT '', `locked` boolean NOT NULL DEFAULT '0' COMMENT '', `pid` int unsigned NOT NULL DEFAULT 0 COMMENT 'Process ID', - PRIMARY KEY(`id`) -) DEFAULT COLLATE utf8mb4_general_ci; + `expires` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT 'datetime of cache expiration', + PRIMARY KEY(`id`), + INDEX `name_expires` (`name`,`expires`) +) DEFAULT COLLATE utf8mb4_general_ci COMMENT=''; -- -- TABLE mail @@ -583,7 +655,7 @@ CREATE TABLE IF NOT EXISTS `mail` ( INDEX `uri` (`uri`(64)), INDEX `parent-uri` (`parent-uri`(64)), INDEX `contactid` (`contact-id`(32)) -) DEFAULT COLLATE utf8mb4_general_ci; +) DEFAULT COLLATE utf8mb4_general_ci COMMENT='private messages'; -- -- TABLE mailacct @@ -603,7 +675,7 @@ CREATE TABLE IF NOT EXISTS `mailacct` ( `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; +) DEFAULT COLLATE utf8mb4_general_ci COMMENT='Mail account data for fetching mails'; -- -- TABLE manage @@ -614,7 +686,7 @@ CREATE TABLE IF NOT EXISTS `manage` ( `mid` mediumint unsigned NOT NULL DEFAULT 0 COMMENT 'User id', PRIMARY KEY(`id`), UNIQUE INDEX `uid_mid` (`uid`,`mid`) -) DEFAULT COLLATE utf8mb4_general_ci; +) DEFAULT COLLATE utf8mb4_general_ci COMMENT='table of accounts that can manage each other'; -- -- TABLE notify @@ -642,7 +714,7 @@ CREATE TABLE IF NOT EXISTS `notify` ( 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; +) DEFAULT COLLATE utf8mb4_general_ci COMMENT='notifications'; -- -- TABLE notify-threads @@ -654,7 +726,7 @@ CREATE TABLE IF NOT EXISTS `notify-threads` ( `parent-item` int unsigned NOT NULL DEFAULT 0 COMMENT '', `receiver-uid` mediumint unsigned NOT NULL DEFAULT 0 COMMENT 'User id', PRIMARY KEY(`id`) -) DEFAULT COLLATE utf8mb4_general_ci; +) DEFAULT COLLATE utf8mb4_general_ci COMMENT=''; -- -- TABLE oembed @@ -666,7 +738,20 @@ CREATE TABLE IF NOT EXISTS `oembed` ( `created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT 'datetime of creation', PRIMARY KEY(`url`,`maxwidth`), INDEX `created` (`created`) -) DEFAULT COLLATE utf8mb4_general_ci; +) DEFAULT COLLATE utf8mb4_general_ci COMMENT='cache for OEmbed queries'; + +-- +-- TABLE openwebauth-token +-- +CREATE TABLE IF NOT EXISTS `openwebauth-token` ( + `id` int unsigned NOT NULL auto_increment COMMENT 'sequential ID', + `uid` mediumint unsigned NOT NULL DEFAULT 0 COMMENT 'User id', + `type` varchar(32) NOT NULL DEFAULT '' COMMENT 'Verify type', + `token` varchar(255) NOT NULL DEFAULT '' COMMENT 'A generated token', + `meta` varchar(255) NOT NULL DEFAULT '' COMMENT '', + `created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT 'datetime of creation', + PRIMARY KEY(`id`) +) DEFAULT COLLATE utf8mb4_general_ci COMMENT='Store OpenWebAuth token to verify contacts'; -- -- TABLE parsed_url @@ -679,7 +764,7 @@ CREATE TABLE IF NOT EXISTS `parsed_url` ( `created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT 'datetime of creation', PRIMARY KEY(`url`,`guessing`,`oembed`), INDEX `created` (`created`) -) DEFAULT COLLATE utf8mb4_general_ci; +) DEFAULT COLLATE utf8mb4_general_ci COMMENT='cache for \'parse_url\' queries'; -- -- TABLE participation @@ -690,7 +775,7 @@ CREATE TABLE IF NOT EXISTS `participation` ( `cid` int unsigned NOT NULL COMMENT '', `fid` int unsigned NOT NULL COMMENT '', PRIMARY KEY(`iid`,`server`) -) DEFAULT COLLATE utf8mb4_general_ci; +) DEFAULT COLLATE utf8mb4_general_ci COMMENT='Storage for participation messages from Diaspora'; -- -- TABLE pconfig @@ -703,7 +788,21 @@ CREATE TABLE IF NOT EXISTS `pconfig` ( `v` mediumtext COMMENT '', PRIMARY KEY(`id`), UNIQUE INDEX `uid_cat_k` (`uid`,`cat`,`k`) -) DEFAULT COLLATE utf8mb4_general_ci; +) DEFAULT COLLATE utf8mb4_general_ci COMMENT='personal (per user) configuration storage'; + +-- +-- TABLE permissionset +-- +CREATE TABLE IF NOT EXISTS `permissionset` ( + `id` int unsigned NOT NULL auto_increment COMMENT 'sequential ID', + `uid` mediumint unsigned NOT NULL DEFAULT 0 COMMENT 'Owner id of this permission set', + `allow_cid` mediumtext COMMENT 'Access Control - list of allowed contact.id \'<19><78>\'', + `allow_gid` mediumtext COMMENT 'Access Control - list of allowed groups', + `deny_cid` mediumtext COMMENT 'Access Control - list of denied contact.id', + `deny_gid` mediumtext COMMENT 'Access Control - list of denied groups', + PRIMARY KEY(`id`), + INDEX `uid_allow_cid_allow_gid_deny_cid_deny_gid` (`allow_cid`(50),`allow_gid`(30),`deny_cid`(50),`deny_gid`(30)) +) DEFAULT COLLATE utf8mb4_general_ci COMMENT=''; -- -- TABLE photo @@ -738,7 +837,7 @@ CREATE TABLE IF NOT EXISTS `photo` ( INDEX `uid_album_scale_created` (`uid`,`album`(32),`scale`,`created`), INDEX `uid_album_resource-id_created` (`uid`,`album`(32),`resource-id`,`created`), INDEX `resource-id` (`resource-id`) -) DEFAULT COLLATE utf8mb4_general_ci; +) DEFAULT COLLATE utf8mb4_general_ci COMMENT='photo storage'; -- -- TABLE poll @@ -758,7 +857,7 @@ CREATE TABLE IF NOT EXISTS `poll` ( `q9` text COMMENT '', PRIMARY KEY(`id`), INDEX `uid` (`uid`) -) DEFAULT COLLATE utf8mb4_general_ci; +) DEFAULT COLLATE utf8mb4_general_ci COMMENT='Currently unused table for storing poll results'; -- -- TABLE poll_result @@ -769,7 +868,7 @@ CREATE TABLE IF NOT EXISTS `poll_result` ( `choice` tinyint unsigned NOT NULL DEFAULT 0 COMMENT '', PRIMARY KEY(`id`), INDEX `poll_id` (`poll_id`) -) DEFAULT COLLATE utf8mb4_general_ci; +) DEFAULT COLLATE utf8mb4_general_ci COMMENT='data for polls - currently unused'; -- -- TABLE process @@ -780,7 +879,7 @@ CREATE TABLE IF NOT EXISTS `process` ( `created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '', PRIMARY KEY(`pid`), INDEX `command` (`command`) -) DEFAULT COLLATE utf8mb4_general_ci; +) DEFAULT COLLATE utf8mb4_general_ci COMMENT='Currently running system processes'; -- -- TABLE profile @@ -830,7 +929,7 @@ CREATE TABLE IF NOT EXISTS `profile` ( `net-publish` boolean NOT NULL DEFAULT '0' COMMENT 'publish profile in global directory', PRIMARY KEY(`id`), INDEX `uid_is-default` (`uid`,`is-default`) -) DEFAULT COLLATE utf8mb4_general_ci; +) DEFAULT COLLATE utf8mb4_general_ci COMMENT='user profiles data'; -- -- TABLE profile_check @@ -843,7 +942,7 @@ CREATE TABLE IF NOT EXISTS `profile_check` ( `sec` varchar(255) NOT NULL DEFAULT '' COMMENT '', `expire` int unsigned NOT NULL DEFAULT 0 COMMENT '', PRIMARY KEY(`id`) -) DEFAULT COLLATE utf8mb4_general_ci; +) DEFAULT COLLATE utf8mb4_general_ci COMMENT='DFRN remote auth use'; -- -- TABLE push_subscriber @@ -861,7 +960,7 @@ CREATE TABLE IF NOT EXISTS `push_subscriber` ( `secret` varchar(255) NOT NULL DEFAULT '' COMMENT '', PRIMARY KEY(`id`), INDEX `next_try` (`next_try`) -) DEFAULT COLLATE utf8mb4_general_ci; +) DEFAULT COLLATE utf8mb4_general_ci COMMENT='Used for OStatus: Contains feed subscribers'; -- -- TABLE queue @@ -880,7 +979,7 @@ CREATE TABLE IF NOT EXISTS `queue` ( PRIMARY KEY(`id`), INDEX `last` (`last`), INDEX `next` (`next`) -) DEFAULT COLLATE utf8mb4_general_ci; +) DEFAULT COLLATE utf8mb4_general_ci COMMENT='Queue for messages that couldn\'t be delivered'; -- -- TABLE register @@ -894,7 +993,7 @@ CREATE TABLE IF NOT EXISTS `register` ( `language` varchar(16) NOT NULL DEFAULT '' COMMENT '', `note` text COMMENT '', PRIMARY KEY(`id`) -) DEFAULT COLLATE utf8mb4_general_ci; +) DEFAULT COLLATE utf8mb4_general_ci COMMENT='registrations requiring admin approval'; -- -- TABLE search @@ -905,7 +1004,7 @@ CREATE TABLE IF NOT EXISTS `search` ( `term` varchar(255) NOT NULL DEFAULT '' COMMENT '', PRIMARY KEY(`id`), INDEX `uid` (`uid`) -) DEFAULT COLLATE utf8mb4_general_ci; +) DEFAULT COLLATE utf8mb4_general_ci COMMENT=''; -- -- TABLE session @@ -918,7 +1017,7 @@ CREATE TABLE IF NOT EXISTS `session` ( PRIMARY KEY(`id`), INDEX `sid` (`sid`(64)), INDEX `expire` (`expire`) -) DEFAULT COLLATE utf8mb4_general_ci; +) DEFAULT COLLATE utf8mb4_general_ci COMMENT='web session storage'; -- -- TABLE sign @@ -931,7 +1030,7 @@ CREATE TABLE IF NOT EXISTS `sign` ( `signer` varchar(255) NOT NULL DEFAULT '' COMMENT '', PRIMARY KEY(`id`), UNIQUE INDEX `iid` (`iid`) -) DEFAULT COLLATE utf8mb4_general_ci; +) DEFAULT COLLATE utf8mb4_general_ci COMMENT='Diaspora signatures'; -- -- TABLE term @@ -947,14 +1046,13 @@ CREATE TABLE IF NOT EXISTS `term` ( `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 unsigned NOT NULL DEFAULT 0 COMMENT '', `uid` mediumint unsigned 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; +) DEFAULT COLLATE utf8mb4_general_ci COMMENT='item taxonomy (categories, tags, etc.) table'; -- -- TABLE thread @@ -977,13 +1075,14 @@ CREATE TABLE IF NOT EXISTS `thread` ( `visible` 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 '', + `post-type` tinyint unsigned NOT NULL DEFAULT 0 COMMENT 'Post type (personal note, bookmark, ...)', `unseen` boolean NOT NULL DEFAULT '1' COMMENT '', `deleted` boolean NOT NULL DEFAULT '0' COMMENT '', `origin` boolean NOT NULL DEFAULT '0' COMMENT '', `forum_mode` tinyint unsigned NOT NULL DEFAULT 0 COMMENT '', `mention` boolean NOT NULL DEFAULT '0' COMMENT '', `network` char(4) NOT NULL DEFAULT '' COMMENT '', + `bookmark` boolean COMMENT '', PRIMARY KEY(`iid`), INDEX `uid_network_commented` (`uid`,`network`,`commented`), INDEX `uid_network_created` (`uid`,`network`,`created`), @@ -996,7 +1095,7 @@ CREATE TABLE IF NOT EXISTS `thread` ( 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; +) DEFAULT COLLATE utf8mb4_general_ci COMMENT='Thread related data'; -- -- TABLE tokens @@ -1009,7 +1108,7 @@ CREATE TABLE IF NOT EXISTS `tokens` ( `scope` varchar(200) NOT NULL DEFAULT '' COMMENT '', `uid` mediumint unsigned NOT NULL DEFAULT 0 COMMENT 'User id', PRIMARY KEY(`id`) -) DEFAULT COLLATE utf8mb4_general_ci; +) DEFAULT COLLATE utf8mb4_general_ci COMMENT='OAuth usage'; -- -- TABLE user @@ -1062,7 +1161,7 @@ CREATE TABLE IF NOT EXISTS `user` ( `openidserver` text COMMENT '', PRIMARY KEY(`uid`), INDEX `nickname` (`nickname`(32)) -) DEFAULT COLLATE utf8mb4_general_ci; +) DEFAULT COLLATE utf8mb4_general_ci COMMENT='The local users'; -- -- TABLE userd @@ -1072,7 +1171,19 @@ CREATE TABLE IF NOT EXISTS `userd` ( `username` varchar(255) NOT NULL COMMENT '', PRIMARY KEY(`id`), INDEX `username` (`username`(32)) -) DEFAULT COLLATE utf8mb4_general_ci; +) DEFAULT COLLATE utf8mb4_general_ci COMMENT='Deleted usernames'; + +-- +-- TABLE user-contact +-- +CREATE TABLE IF NOT EXISTS `user-contact` ( + `cid` int unsigned NOT NULL DEFAULT 0 COMMENT 'Contact id of the linked public contact', + `uid` mediumint unsigned NOT NULL DEFAULT 0 COMMENT 'User id', + `blocked` boolean COMMENT 'Contact is completely blocked for this user', + `ignored` boolean COMMENT 'Posts from this contact are ignored', + `collapsed` boolean COMMENT 'Posts from this contact are collapsed', + PRIMARY KEY(`uid`,`cid`) +) DEFAULT COLLATE utf8mb4_general_ci COMMENT='User specific public contact data'; -- -- TABLE user-item @@ -1081,8 +1192,18 @@ CREATE TABLE IF NOT EXISTS `user-item` ( `iid` int unsigned NOT NULL DEFAULT 0 COMMENT 'Item id', `uid` mediumint unsigned NOT NULL DEFAULT 0 COMMENT 'User id', `hidden` boolean NOT NULL DEFAULT '0' COMMENT 'Marker to hide an item from the user', + `ignored` boolean COMMENT 'Ignore this thread if set', PRIMARY KEY(`uid`,`iid`) -) DEFAULT COLLATE utf8mb4_general_ci; +) DEFAULT COLLATE utf8mb4_general_ci COMMENT='User specific item data'; + +-- +-- TABLE worker-ipc +-- +CREATE TABLE IF NOT EXISTS `worker-ipc` ( + `key` int NOT NULL COMMENT '', + `jobs` boolean COMMENT 'Flag for outstanding jobs', + PRIMARY KEY(`key`) +) ENGINE=MEMORY DEFAULT COLLATE utf8mb4_general_ci COMMENT='Inter process communication between the frontend and the worker'; -- -- TABLE workerqueue @@ -1100,6 +1221,6 @@ CREATE TABLE IF NOT EXISTS `workerqueue` ( INDEX `parameter` (`parameter`(64)), INDEX `priority_created` (`priority`,`created`), INDEX `done_executed` (`done`,`executed`) -) DEFAULT COLLATE utf8mb4_general_ci; +) DEFAULT COLLATE utf8mb4_general_ci COMMENT='Background tasks queue entries';