-- ------------------------------------------
+--
+-- 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 unsigned NOT NULL DEFAULT 0 COMMENT 'User id',
+ PRIMARY KEY(`client_id`)
+) DEFAULT COLLATE utf8mb4_general_ci COMMENT='OAuth usage';
+
+--
+-- TABLE contact
+--
+CREATE TABLE IF NOT EXISTS `contact` (
+ `id` int unsigned NOT NULL auto_increment COMMENT 'sequential ID',
+ `uid` mediumint unsigned NOT NULL DEFAULT 0 COMMENT 'Owner User id',
+ `created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '',
+ `updated` datetime DEFAULT '0001-01-01 00:00:00' COMMENT 'Date of last contact update',
+ `self` boolean NOT NULL DEFAULT '0' COMMENT '1 if the contact is the user him/her self',
+ `remote_self` boolean NOT NULL DEFAULT '0' COMMENT '',
+ `rel` tinyint unsigned NOT NULL DEFAULT 0 COMMENT 'The kind of the relation between the user and the contact',
+ `duplex` boolean NOT NULL DEFAULT '0' COMMENT '',
+ `network` char(4) NOT NULL DEFAULT '' COMMENT 'Network of the contact',
+ `protocol` char(4) NOT NULL DEFAULT '' COMMENT 'Protocol of the contact',
+ `name` varchar(255) NOT NULL DEFAULT '' COMMENT 'Name that this contact is known by',
+ `nick` varchar(255) NOT NULL DEFAULT '' COMMENT 'Nick- and user name of the contact',
+ `location` varchar(255) DEFAULT '' COMMENT '',
+ `about` text COMMENT '',
+ `keywords` text COMMENT 'public keywords (interests) of the contact',
+ `gender` varchar(32) NOT NULL DEFAULT '' COMMENT 'Deprecated',
+ `xmpp` varchar(255) NOT NULL DEFAULT '' COMMENT '',
+ `attag` varchar(255) NOT NULL DEFAULT '' COMMENT '',
+ `avatar` varchar(255) NOT NULL DEFAULT '' COMMENT '',
+ `photo` varchar(255) DEFAULT '' COMMENT 'Link to the profile photo of the contact',
+ `thumb` varchar(255) DEFAULT '' COMMENT 'Link to the profile photo (thumb size)',
+ `micro` varchar(255) DEFAULT '' COMMENT 'Link to the profile photo (micro size)',
+ `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 'RSA public key 4096 bit',
+ `prvkey` text COMMENT 'RSA private key 4096 bit',
+ `batch` varchar(255) NOT NULL DEFAULT '' COMMENT '',
+ `request` varchar(255) COMMENT '',
+ `notify` varchar(255) COMMENT '',
+ `poll` varchar(255) COMMENT '',
+ `confirm` varchar(255) COMMENT '',
+ `poco` varchar(255) 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 'Date of the last try to update the contact info',
+ `success_update` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT 'Date of the last successful contact update',
+ `failure_update` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT 'Date of the last failed update',
+ `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 'date of the last post',
+ `priority` tinyint unsigned NOT NULL DEFAULT 0 COMMENT '',
+ `blocked` boolean NOT NULL DEFAULT '1' COMMENT 'Node-wide block status',
+ `block_reason` text COMMENT 'Node-wide block reason',
+ `readonly` boolean NOT NULL DEFAULT '0' COMMENT 'posts of the contact are readonly',
+ `writable` boolean NOT NULL DEFAULT '0' COMMENT '',
+ `forum` boolean NOT NULL DEFAULT '0' COMMENT 'contact is a forum',
+ `prv` boolean NOT NULL DEFAULT '0' COMMENT 'contact is a private group',
+ `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 '',
+ `deleted` boolean NOT NULL DEFAULT '0' COMMENT 'Contact has been deleted',
+ `rating` tinyint NOT NULL DEFAULT 0 COMMENT '',
+ `unsearchable` boolean NOT NULL DEFAULT '0' COMMENT 'Contact prefers to not be searchable',
+ `sensitive` boolean NOT NULL DEFAULT '0' COMMENT 'Contact posts sensitive content',
+ `baseurl` varchar(255) DEFAULT '' COMMENT 'baseurl of the contact',
+ `reason` text COMMENT '',
+ `closeness` tinyint unsigned NOT NULL DEFAULT 99 COMMENT '',
+ `info` mediumtext COMMENT '',
+ `profile-id` int unsigned COMMENT 'Deprecated',
+ `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 unsigned 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 COMMENT='contact table';
+
+--
+-- 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 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 tag
+--
+CREATE TABLE IF NOT EXISTS `tag` (
+ `id` int unsigned NOT NULL auto_increment COMMENT '',
+ `name` varchar(96) NOT NULL DEFAULT '' COMMENT '',
+ `url` varbinary(255) NOT NULL DEFAULT '' COMMENT '',
+ PRIMARY KEY(`id`),
+ UNIQUE INDEX `type_name_url` (`name`,`url`),
+ INDEX `url` (`url`)
+) DEFAULT COLLATE utf8mb4_general_ci COMMENT='tags and mentions';
+
--
-- TABLE 2fa_app_specific_password
--
PRIMARY KEY(`id`)
) DEFAULT COLLATE utf8mb4_general_ci COMMENT='';
---
--- 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 unsigned NOT NULL DEFAULT 0 COMMENT 'User id',
- PRIMARY KEY(`client_id`)
-) DEFAULT COLLATE utf8mb4_general_ci COMMENT='OAuth usage';
-
--
-- TABLE config
--
UNIQUE INDEX `cat_k` (`cat`,`k`)
) DEFAULT COLLATE utf8mb4_general_ci COMMENT='main configuration storage';
---
--- TABLE contact
---
-CREATE TABLE IF NOT EXISTS `contact` (
- `id` int unsigned NOT NULL auto_increment COMMENT 'sequential ID',
- `uid` mediumint unsigned NOT NULL DEFAULT 0 COMMENT 'Owner User id',
- `created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '',
- `updated` datetime DEFAULT '0001-01-01 00:00:00' COMMENT 'Date of last contact update',
- `self` boolean NOT NULL DEFAULT '0' COMMENT '1 if the contact is the user him/her self',
- `remote_self` boolean NOT NULL DEFAULT '0' COMMENT '',
- `rel` tinyint unsigned NOT NULL DEFAULT 0 COMMENT 'The kind of the relation between the user and the contact',
- `duplex` boolean NOT NULL DEFAULT '0' COMMENT '',
- `network` char(4) NOT NULL DEFAULT '' COMMENT 'Network of the contact',
- `protocol` char(4) NOT NULL DEFAULT '' COMMENT 'Protocol of the contact',
- `name` varchar(255) NOT NULL DEFAULT '' COMMENT 'Name that this contact is known by',
- `nick` varchar(255) NOT NULL DEFAULT '' COMMENT 'Nick- and user name of the contact',
- `location` varchar(255) DEFAULT '' COMMENT '',
- `about` text COMMENT '',
- `keywords` text COMMENT 'public keywords (interests) of the contact',
- `gender` varchar(32) NOT NULL DEFAULT '' COMMENT 'Deprecated',
- `xmpp` varchar(255) NOT NULL DEFAULT '' COMMENT '',
- `attag` varchar(255) NOT NULL DEFAULT '' COMMENT '',
- `avatar` varchar(255) NOT NULL DEFAULT '' COMMENT '',
- `photo` varchar(255) DEFAULT '' COMMENT 'Link to the profile photo of the contact',
- `thumb` varchar(255) DEFAULT '' COMMENT 'Link to the profile photo (thumb size)',
- `micro` varchar(255) DEFAULT '' COMMENT 'Link to the profile photo (micro size)',
- `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 'RSA public key 4096 bit',
- `prvkey` text COMMENT 'RSA private key 4096 bit',
- `batch` varchar(255) NOT NULL DEFAULT '' COMMENT '',
- `request` varchar(255) COMMENT '',
- `notify` varchar(255) COMMENT '',
- `poll` varchar(255) COMMENT '',
- `confirm` varchar(255) COMMENT '',
- `poco` varchar(255) 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 'Date of the last try to update the contact info',
- `success_update` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT 'Date of the last successful contact update',
- `failure_update` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT 'Date of the last failed update',
- `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 'date of the last post',
- `priority` tinyint unsigned NOT NULL DEFAULT 0 COMMENT '',
- `blocked` boolean NOT NULL DEFAULT '1' COMMENT 'Node-wide block status',
- `block_reason` text COMMENT 'Node-wide block reason',
- `readonly` boolean NOT NULL DEFAULT '0' COMMENT 'posts of the contact are readonly',
- `writable` boolean NOT NULL DEFAULT '0' COMMENT '',
- `forum` boolean NOT NULL DEFAULT '0' COMMENT 'contact is a forum',
- `prv` boolean NOT NULL DEFAULT '0' COMMENT 'contact is a private group',
- `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 '',
- `deleted` boolean NOT NULL DEFAULT '0' COMMENT 'Contact has been deleted',
- `rating` tinyint NOT NULL DEFAULT 0 COMMENT '',
- `unsearchable` boolean NOT NULL DEFAULT '0' COMMENT 'Contact prefers to not be searchable',
- `sensitive` boolean NOT NULL DEFAULT '0' COMMENT 'Contact posts sensitive content',
- `baseurl` varchar(255) DEFAULT '' COMMENT 'baseurl of the contact',
- `reason` text COMMENT '',
- `closeness` tinyint unsigned NOT NULL DEFAULT 99 COMMENT '',
- `info` mediumtext COMMENT '',
- `profile-id` int unsigned COMMENT 'Deprecated',
- `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 unsigned 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 COMMENT='contact table';
-
--
-- TABLE contact-relation
--
CONSTRAINT `item-content-uri-id-item-uri-id` FOREIGN KEY (`uri-id`) REFERENCES `item-uri` (`id`) ON UPDATE RESTRICT ON DELETE CASCADE
) DEFAULT COLLATE utf8mb4_general_ci COMMENT='Content for all posts';
---
--- 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
--
UNIQUE INDEX `uid_cat_k` (`uid`,`cat`,`k`)
) 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
--
INDEX `poll_id` (`poll_id`)
) DEFAULT COLLATE utf8mb4_general_ci COMMENT='data for polls - currently unused';
+--
+-- TABLE post-category
+--
+CREATE TABLE IF NOT EXISTS `post-category` (
+ `uri-id` int unsigned NOT NULL COMMENT 'Id of the item-uri table entry that contains the item uri',
+ `uid` mediumint unsigned NOT NULL DEFAULT 0 COMMENT 'User id',
+ `type` tinyint unsigned NOT NULL DEFAULT 0 COMMENT '',
+ `tid` int unsigned NOT NULL DEFAULT 0 COMMENT '',
+ PRIMARY KEY(`uri-id`,`uid`,`type`,`tid`),
+ INDEX `uri-id` (`tid`),
+ CONSTRAINT `post-category-uri-id-item-uri-id` FOREIGN KEY (`uri-id`) REFERENCES `item-uri` (`id`) ON UPDATE RESTRICT ON DELETE CASCADE,
+ CONSTRAINT `post-category-tid-tag-id` FOREIGN KEY (`tid`) REFERENCES `tag` (`id`) ON UPDATE RESTRICT ON DELETE RESTRICT
+) DEFAULT COLLATE utf8mb4_general_ci COMMENT='post relation to categories';
+
+--
+-- TABLE post-delivery-data
+--
+CREATE TABLE IF NOT EXISTS `post-delivery-data` (
+ `uri-id` int unsigned NOT NULL COMMENT 'Id of the item-uri table entry that contains the item uri',
+ `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',
+ `queue_count` mediumint NOT NULL DEFAULT 0 COMMENT 'Initial number of delivery recipients, used as item.delivery_queue_count',
+ `queue_done` mediumint NOT NULL DEFAULT 0 COMMENT 'Number of successful deliveries, used as item.delivery_queue_done',
+ `queue_failed` mediumint NOT NULL DEFAULT 0 COMMENT 'Number of unsuccessful deliveries, used as item.delivery_queue_failed',
+ `activitypub` mediumint NOT NULL DEFAULT 0 COMMENT 'Number of successful deliveries via ActivityPub',
+ `dfrn` mediumint NOT NULL DEFAULT 0 COMMENT 'Number of successful deliveries via DFRN',
+ `legacy_dfrn` mediumint NOT NULL DEFAULT 0 COMMENT 'Number of successful deliveries via legacy DFRN',
+ `diaspora` mediumint NOT NULL DEFAULT 0 COMMENT 'Number of successful deliveries via Diaspora',
+ `ostatus` mediumint NOT NULL DEFAULT 0 COMMENT 'Number of successful deliveries via OStatus',
+ PRIMARY KEY(`uri-id`),
+ CONSTRAINT `post-delivery-data-uri-id-item-uri-id` FOREIGN KEY (`uri-id`) REFERENCES `item-uri` (`id`) ON UPDATE RESTRICT ON DELETE CASCADE
+) DEFAULT COLLATE utf8mb4_general_ci COMMENT='Delivery data for items';
+
+--
+-- TABLE post-tag
+--
+CREATE TABLE IF NOT EXISTS `post-tag` (
+ `uri-id` int unsigned NOT NULL COMMENT 'Id of the item-uri table entry that contains the item uri',
+ `type` tinyint unsigned NOT NULL DEFAULT 0 COMMENT '',
+ `tid` int unsigned NOT NULL DEFAULT 0 COMMENT '',
+ `cid` int unsigned NOT NULL DEFAULT 0 COMMENT 'Contact id of the mentioned public contact',
+ PRIMARY KEY(`uri-id`,`type`,`tid`,`cid`),
+ INDEX `tid` (`tid`),
+ INDEX `cid` (`cid`),
+ CONSTRAINT `post-tag-uri-id-item-uri-id` FOREIGN KEY (`uri-id`) REFERENCES `item-uri` (`id`) ON UPDATE RESTRICT ON DELETE CASCADE,
+ CONSTRAINT `post-tag-tid-tag-id` FOREIGN KEY (`tid`) REFERENCES `tag` (`id`) ON UPDATE RESTRICT ON DELETE RESTRICT,
+ CONSTRAINT `post-tag-cid-contact-id` FOREIGN KEY (`cid`) REFERENCES `contact` (`id`) ON UPDATE RESTRICT ON DELETE RESTRICT
+) DEFAULT COLLATE utf8mb4_general_ci COMMENT='post relation to tags';
+
--
-- TABLE process
--
) DEFAULT COLLATE utf8mb4_general_ci COMMENT='web session storage';
--
--- TABLE tag
---
-CREATE TABLE IF NOT EXISTS `tag` (
- `id` int unsigned NOT NULL auto_increment COMMENT '',
- `name` varchar(96) NOT NULL DEFAULT '' COMMENT '',
- `url` varbinary(255) NOT NULL DEFAULT '' COMMENT '',
- PRIMARY KEY(`id`),
- UNIQUE INDEX `type_name_url` (`name`,`url`),
- INDEX `url` (`url`)
-) DEFAULT COLLATE utf8mb4_general_ci COMMENT='tags and mentions';
-
---
--- TABLE post-category
---
-CREATE TABLE IF NOT EXISTS `post-category` (
- `uri-id` int unsigned NOT NULL COMMENT 'Id of the item-uri table entry that contains the item uri',
- `uid` mediumint unsigned NOT NULL DEFAULT 0 COMMENT 'User id',
- `type` tinyint unsigned NOT NULL DEFAULT 0 COMMENT '',
- `tid` int unsigned NOT NULL DEFAULT 0 COMMENT '',
- PRIMARY KEY(`uri-id`,`uid`,`type`,`tid`),
- INDEX `uri-id` (`tid`),
- CONSTRAINT `post-category-uri-id-item-uri-id` FOREIGN KEY (`uri-id`) REFERENCES `item-uri` (`id`) ON UPDATE RESTRICT ON DELETE CASCADE,
- CONSTRAINT `post-category-tid-tag-id` FOREIGN KEY (`tid`) REFERENCES `tag` (`id`) ON UPDATE RESTRICT ON DELETE RESTRICT
-) DEFAULT COLLATE utf8mb4_general_ci COMMENT='post relation to categories';
-
---
--- TABLE post-delivery-data
---
-CREATE TABLE IF NOT EXISTS `post-delivery-data` (
- `uri-id` int unsigned NOT NULL COMMENT 'Id of the item-uri table entry that contains the item uri',
- `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',
- `queue_count` mediumint NOT NULL DEFAULT 0 COMMENT 'Initial number of delivery recipients, used as item.delivery_queue_count',
- `queue_done` mediumint NOT NULL DEFAULT 0 COMMENT 'Number of successful deliveries, used as item.delivery_queue_done',
- `queue_failed` mediumint NOT NULL DEFAULT 0 COMMENT 'Number of unsuccessful deliveries, used as item.delivery_queue_failed',
- `activitypub` mediumint NOT NULL DEFAULT 0 COMMENT 'Number of successful deliveries via ActivityPub',
- `dfrn` mediumint NOT NULL DEFAULT 0 COMMENT 'Number of successful deliveries via DFRN',
- `legacy_dfrn` mediumint NOT NULL DEFAULT 0 COMMENT 'Number of successful deliveries via legacy DFRN',
- `diaspora` mediumint NOT NULL DEFAULT 0 COMMENT 'Number of successful deliveries via Diaspora',
- `ostatus` mediumint NOT NULL DEFAULT 0 COMMENT 'Number of successful deliveries via OStatus',
- PRIMARY KEY(`uri-id`),
- CONSTRAINT `post-delivery-data-uri-id-item-uri-id` FOREIGN KEY (`uri-id`) REFERENCES `item-uri` (`id`) ON UPDATE RESTRICT ON DELETE CASCADE
-) DEFAULT COLLATE utf8mb4_general_ci COMMENT='Delivery data for items';
-
---
--- TABLE post-tag
+-- TABLE storage
--
-CREATE TABLE IF NOT EXISTS `post-tag` (
- `uri-id` int unsigned NOT NULL COMMENT 'Id of the item-uri table entry that contains the item uri',
- `type` tinyint unsigned NOT NULL DEFAULT 0 COMMENT '',
- `tid` int unsigned NOT NULL DEFAULT 0 COMMENT '',
- `cid` int unsigned NOT NULL DEFAULT 0 COMMENT 'Contact id of the mentioned public contact',
- PRIMARY KEY(`uri-id`,`type`,`tid`,`cid`),
- INDEX `tid` (`tid`),
- INDEX `cid` (`cid`),
- CONSTRAINT `post-tag-uri-id-item-uri-id` FOREIGN KEY (`uri-id`) REFERENCES `item-uri` (`id`) ON UPDATE RESTRICT ON DELETE CASCADE,
- CONSTRAINT `post-tag-tid-tag-id` FOREIGN KEY (`tid`) REFERENCES `tag` (`id`) ON UPDATE RESTRICT ON DELETE RESTRICT,
- CONSTRAINT `post-tag-cid-contact-id` FOREIGN KEY (`cid`) REFERENCES `contact` (`id`) ON UPDATE RESTRICT ON DELETE RESTRICT
-) DEFAULT COLLATE utf8mb4_general_ci COMMENT='post relation to tags';
+CREATE TABLE IF NOT EXISTS `storage` (
+ `id` int unsigned NOT NULL auto_increment COMMENT 'Auto incremented image data id',
+ `data` longblob NOT NULL COMMENT 'file data',
+ PRIMARY KEY(`id`)
+) DEFAULT COLLATE utf8mb4_general_ci COMMENT='Data stored by Database storage backend';
--
-- TABLE thread
INDEX `done_pid_priority_created` (`done`,`pid`,`priority`,`created`)
) DEFAULT COLLATE utf8mb4_general_ci COMMENT='Background tasks queue entries';
---
--- TABLE storage
---
-CREATE TABLE IF NOT EXISTS `storage` (
- `id` int unsigned NOT NULL auto_increment COMMENT 'Auto incremented image data id',
- `data` longblob NOT NULL COMMENT 'file data',
- PRIMARY KEY(`id`)
-) DEFAULT COLLATE utf8mb4_general_ci COMMENT='Data stored by Database storage backend';
-
--
-- VIEW category-view
--
}
return [
+ // Side tables
+ "clients" => [
+ "comment" => "OAuth usage",
+ "fields" => [
+ "client_id" => ["type" => "varchar(20)", "not null" => "1", "primary" => "1", "comment" => ""],
+ "pw" => ["type" => "varchar(20)", "not null" => "1", "default" => "", "comment" => ""],
+ "redirect_uri" => ["type" => "varchar(200)", "not null" => "1", "default" => "", "comment" => ""],
+ "name" => ["type" => "text", "comment" => ""],
+ "icon" => ["type" => "text", "comment" => ""],
+ "uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"],
+ ],
+ "indexes" => [
+ "PRIMARY" => ["client_id"],
+ ]
+ ],
+ "contact" => [
+ "comment" => "contact table",
+ "fields" => [
+ "id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => "sequential ID"],
+ "uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "Owner User id"],
+ "created" => ["type" => "datetime", "not null" => "1", "default" => DBA::NULL_DATETIME, "comment" => ""],
+ "updated" => ["type" => "datetime", "default" => DBA::NULL_DATETIME, "comment" => "Date of last contact update"],
+ "self" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "1 if the contact is the user him/her self"],
+ "remote_self" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
+ "rel" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "0", "comment" => "The kind of the relation between the user and the contact"],
+ "duplex" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
+ "network" => ["type" => "char(4)", "not null" => "1", "default" => "", "comment" => "Network of the contact"],
+ "protocol" => ["type" => "char(4)", "not null" => "1", "default" => "", "comment" => "Protocol of the contact"],
+ "name" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => "Name that this contact is known by"],
+ "nick" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => "Nick- and user name of the contact"],
+ "location" => ["type" => "varchar(255)", "default" => "", "comment" => ""],
+ "about" => ["type" => "text", "comment" => ""],
+ "keywords" => ["type" => "text", "comment" => "public keywords (interests) of the contact"],
+ "gender" => ["type" => "varchar(32)", "not null" => "1", "default" => "", "comment" => "Deprecated"],
+ "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" => "varchar(255)", "default" => "", "comment" => "Link to the profile photo of the contact"],
+ "thumb" => ["type" => "varchar(255)", "default" => "", "comment" => "Link to the profile photo (thumb size)"],
+ "micro" => ["type" => "varchar(255)", "default" => "", "comment" => "Link to the profile photo (micro size)"],
+ "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" => ""],
+ "url" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
+ "nurl" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
+ "addr" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
+ "alias" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
+ "pubkey" => ["type" => "text", "comment" => "RSA public key 4096 bit"],
+ "prvkey" => ["type" => "text", "comment" => "RSA private key 4096 bit"],
+ "batch" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "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" => ""],
+ "subhub" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
+ "hub-verify" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
+ "last-update" => ["type" => "datetime", "not null" => "1", "default" => DBA::NULL_DATETIME, "comment" => "Date of the last try to update the contact info"],
+ "success_update" => ["type" => "datetime", "not null" => "1", "default" => DBA::NULL_DATETIME, "comment" => "Date of the last successful contact update"],
+ "failure_update" => ["type" => "datetime", "not null" => "1", "default" => DBA::NULL_DATETIME, "comment" => "Date of the last failed update"],
+ "name-date" => ["type" => "datetime", "not null" => "1", "default" => DBA::NULL_DATETIME, "comment" => ""],
+ "uri-date" => ["type" => "datetime", "not null" => "1", "default" => DBA::NULL_DATETIME, "comment" => ""],
+ "avatar-date" => ["type" => "datetime", "not null" => "1", "default" => DBA::NULL_DATETIME, "comment" => ""],
+ "term-date" => ["type" => "datetime", "not null" => "1", "default" => DBA::NULL_DATETIME, "comment" => ""],
+ "last-item" => ["type" => "datetime", "not null" => "1", "default" => DBA::NULL_DATETIME, "comment" => "date of the last post"],
+ "priority" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "0", "comment" => ""],
+ "blocked" => ["type" => "boolean", "not null" => "1", "default" => "1", "comment" => "Node-wide block status"],
+ "block_reason" => ["type" => "text", "comment" => "Node-wide block reason"],
+ "readonly" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "posts of the contact are readonly"],
+ "writable" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
+ "forum" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "contact is a forum"],
+ "prv" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "contact is a private group"],
+ "contact-type" => ["type" => "tinyint", "not null" => "1", "default" => "0", "comment" => ""],
+ "hidden" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
+ "archive" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
+ "pending" => ["type" => "boolean", "not null" => "1", "default" => "1", "comment" => ""],
+ "deleted" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "Contact has been deleted"],
+ "rating" => ["type" => "tinyint", "not null" => "1", "default" => "0", "comment" => ""],
+ "unsearchable" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "Contact prefers to not be searchable"],
+ "sensitive" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "Contact posts sensitive content"],
+ "baseurl" => ["type" => "varchar(255)", "default" => "", "comment" => "baseurl of the contact"],
+ "reason" => ["type" => "text", "comment" => ""],
+ "closeness" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "99", "comment" => ""],
+ "info" => ["type" => "mediumtext", "comment" => ""],
+ "profile-id" => ["type" => "int unsigned", "comment" => "Deprecated"],
+ "bdyear" => ["type" => "varchar(4)", "not null" => "1", "default" => "", "comment" => ""],
+ "bd" => ["type" => "date", "not null" => "1", "default" => DBA::NULL_DATE, "comment" => ""],
+ "notify_new_posts" => ["type" => "boolean", "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" => [
+ "PRIMARY" => ["id"],
+ "uid_name" => ["uid", "name(190)"],
+ "self_uid" => ["self", "uid"],
+ "alias_uid" => ["alias(32)", "uid"],
+ "pending_uid" => ["pending", "uid"],
+ "blocked_uid" => ["blocked", "uid"],
+ "uid_rel_network_poll" => ["uid", "rel", "network", "poll(64)", "archive"],
+ "uid_network_batch" => ["uid", "network", "batch(64)"],
+ "addr_uid" => ["addr(32)", "uid"],
+ "nurl_uid" => ["nurl(32)", "uid"],
+ "nick_uid" => ["nick(32)", "uid"],
+ "dfrn-id" => ["dfrn-id(64)"],
+ "issued-id" => ["issued-id(64)"],
+ ]
+ ],
+ "item-uri" => [
+ "comment" => "URI and GUID for items",
+ "fields" => [
+ "id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1"],
+ "uri" => ["type" => "varbinary(255)", "not null" => "1", "comment" => "URI of an item"],
+ "guid" => ["type" => "varbinary(255)", "comment" => "A unique identifier for an item"]
+ ],
+ "indexes" => [
+ "PRIMARY" => ["id"],
+ "uri" => ["UNIQUE", "uri"],
+ "guid" => ["guid"]
+ ]
+ ],
+ "permissionset" => [
+ "comment" => "",
+ "fields" => [
+ "id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => "sequential ID"],
+ "uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "Owner id of this permission set"],
+ "allow_cid" => ["type" => "mediumtext", "comment" => "Access Control - list of allowed contact.id '<19><78>'"],
+ "allow_gid" => ["type" => "mediumtext", "comment" => "Access Control - list of allowed groups"],
+ "deny_cid" => ["type" => "mediumtext", "comment" => "Access Control - list of denied contact.id"],
+ "deny_gid" => ["type" => "mediumtext", "comment" => "Access Control - list of denied groups"],
+ ],
+ "indexes" => [
+ "PRIMARY" => ["id"],
+ "uid_allow_cid_allow_gid_deny_cid_deny_gid" => ["allow_cid(50)", "allow_gid(30)", "deny_cid(50)", "deny_gid(30)"],
+ ]
+ ],
+ "tag" => [
+ "comment" => "tags and mentions",
+ "fields" => [
+ "id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
+ "name" => ["type" => "varchar(96)", "not null" => "1", "default" => "", "comment" => ""],
+ "url" => ["type" => "varbinary(255)", "not null" => "1", "default" => "", "comment" => ""]
+ ],
+ "indexes" => [
+ "PRIMARY" => ["id"],
+ "type_name_url" => ["UNIQUE", "name", "url"],
+ "url" => ["url"]
+ ]
+ ],
+ // Main tables
"2fa_app_specific_password" => [
"comment" => "Two-factor app-specific _password",
"fields" => [
"PRIMARY" => ["id"],
]
],
- "clients" => [
- "comment" => "OAuth usage",
- "fields" => [
- "client_id" => ["type" => "varchar(20)", "not null" => "1", "primary" => "1", "comment" => ""],
- "pw" => ["type" => "varchar(20)", "not null" => "1", "default" => "", "comment" => ""],
- "redirect_uri" => ["type" => "varchar(200)", "not null" => "1", "default" => "", "comment" => ""],
- "name" => ["type" => "text", "comment" => ""],
- "icon" => ["type" => "text", "comment" => ""],
- "uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "User id"],
- ],
- "indexes" => [
- "PRIMARY" => ["client_id"],
- ]
- ],
"config" => [
"comment" => "main configuration storage",
"fields" => [
"cat_k" => ["UNIQUE", "cat", "k"],
]
],
- "contact" => [
- "comment" => "contact table",
- "fields" => [
- "id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => "sequential ID"],
- "uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "Owner User id"],
- "created" => ["type" => "datetime", "not null" => "1", "default" => DBA::NULL_DATETIME, "comment" => ""],
- "updated" => ["type" => "datetime", "default" => DBA::NULL_DATETIME, "comment" => "Date of last contact update"],
- "self" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "1 if the contact is the user him/her self"],
- "remote_self" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
- "rel" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "0", "comment" => "The kind of the relation between the user and the contact"],
- "duplex" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
- "network" => ["type" => "char(4)", "not null" => "1", "default" => "", "comment" => "Network of the contact"],
- "protocol" => ["type" => "char(4)", "not null" => "1", "default" => "", "comment" => "Protocol of the contact"],
- "name" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => "Name that this contact is known by"],
- "nick" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => "Nick- and user name of the contact"],
- "location" => ["type" => "varchar(255)", "default" => "", "comment" => ""],
- "about" => ["type" => "text", "comment" => ""],
- "keywords" => ["type" => "text", "comment" => "public keywords (interests) of the contact"],
- "gender" => ["type" => "varchar(32)", "not null" => "1", "default" => "", "comment" => "Deprecated"],
- "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" => "varchar(255)", "default" => "", "comment" => "Link to the profile photo of the contact"],
- "thumb" => ["type" => "varchar(255)", "default" => "", "comment" => "Link to the profile photo (thumb size)"],
- "micro" => ["type" => "varchar(255)", "default" => "", "comment" => "Link to the profile photo (micro size)"],
- "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" => ""],
- "url" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
- "nurl" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
- "addr" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
- "alias" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
- "pubkey" => ["type" => "text", "comment" => "RSA public key 4096 bit"],
- "prvkey" => ["type" => "text", "comment" => "RSA private key 4096 bit"],
- "batch" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "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" => ""],
- "subhub" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
- "hub-verify" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
- "last-update" => ["type" => "datetime", "not null" => "1", "default" => DBA::NULL_DATETIME, "comment" => "Date of the last try to update the contact info"],
- "success_update" => ["type" => "datetime", "not null" => "1", "default" => DBA::NULL_DATETIME, "comment" => "Date of the last successful contact update"],
- "failure_update" => ["type" => "datetime", "not null" => "1", "default" => DBA::NULL_DATETIME, "comment" => "Date of the last failed update"],
- "name-date" => ["type" => "datetime", "not null" => "1", "default" => DBA::NULL_DATETIME, "comment" => ""],
- "uri-date" => ["type" => "datetime", "not null" => "1", "default" => DBA::NULL_DATETIME, "comment" => ""],
- "avatar-date" => ["type" => "datetime", "not null" => "1", "default" => DBA::NULL_DATETIME, "comment" => ""],
- "term-date" => ["type" => "datetime", "not null" => "1", "default" => DBA::NULL_DATETIME, "comment" => ""],
- "last-item" => ["type" => "datetime", "not null" => "1", "default" => DBA::NULL_DATETIME, "comment" => "date of the last post"],
- "priority" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "0", "comment" => ""],
- "blocked" => ["type" => "boolean", "not null" => "1", "default" => "1", "comment" => "Node-wide block status"],
- "block_reason" => ["type" => "text", "comment" => "Node-wide block reason"],
- "readonly" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "posts of the contact are readonly"],
- "writable" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
- "forum" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "contact is a forum"],
- "prv" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "contact is a private group"],
- "contact-type" => ["type" => "tinyint", "not null" => "1", "default" => "0", "comment" => ""],
- "hidden" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
- "archive" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
- "pending" => ["type" => "boolean", "not null" => "1", "default" => "1", "comment" => ""],
- "deleted" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "Contact has been deleted"],
- "rating" => ["type" => "tinyint", "not null" => "1", "default" => "0", "comment" => ""],
- "unsearchable" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "Contact prefers to not be searchable"],
- "sensitive" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "Contact posts sensitive content"],
- "baseurl" => ["type" => "varchar(255)", "default" => "", "comment" => "baseurl of the contact"],
- "reason" => ["type" => "text", "comment" => ""],
- "closeness" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "99", "comment" => ""],
- "info" => ["type" => "mediumtext", "comment" => ""],
- "profile-id" => ["type" => "int unsigned", "comment" => "Deprecated"],
- "bdyear" => ["type" => "varchar(4)", "not null" => "1", "default" => "", "comment" => ""],
- "bd" => ["type" => "date", "not null" => "1", "default" => DBA::NULL_DATE, "comment" => ""],
- "notify_new_posts" => ["type" => "boolean", "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" => [
- "PRIMARY" => ["id"],
- "uid_name" => ["uid", "name(190)"],
- "self_uid" => ["self", "uid"],
- "alias_uid" => ["alias(32)", "uid"],
- "pending_uid" => ["pending", "uid"],
- "blocked_uid" => ["blocked", "uid"],
- "uid_rel_network_poll" => ["uid", "rel", "network", "poll(64)", "archive"],
- "uid_network_batch" => ["uid", "network", "batch(64)"],
- "addr_uid" => ["addr(32)", "uid"],
- "nurl_uid" => ["nurl(32)", "uid"],
- "nick_uid" => ["nick(32)", "uid"],
- "dfrn-id" => ["dfrn-id(64)"],
- "issued-id" => ["issued-id(64)"],
- ]
- ],
"contact-relation" => [
"comment" => "Contact relations",
"fields" => [
"uri-id" => ["uri-id"]
]
],
- "item-uri" => [
- "comment" => "URI and GUID for items",
- "fields" => [
- "id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1"],
- "uri" => ["type" => "varbinary(255)", "not null" => "1", "comment" => "URI of an item"],
- "guid" => ["type" => "varbinary(255)", "comment" => "A unique identifier for an item"]
- ],
- "indexes" => [
- "PRIMARY" => ["id"],
- "uri" => ["UNIQUE", "uri"],
- "guid" => ["guid"]
- ]
- ],
"locks" => [
"comment" => "",
"fields" => [
"uid_cat_k" => ["UNIQUE", "uid", "cat", "k"],
]
],
- "permissionset" => [
- "comment" => "",
- "fields" => [
- "id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => "sequential ID"],
- "uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "Owner id of this permission set"],
- "allow_cid" => ["type" => "mediumtext", "comment" => "Access Control - list of allowed contact.id '<19><78>'"],
- "allow_gid" => ["type" => "mediumtext", "comment" => "Access Control - list of allowed groups"],
- "deny_cid" => ["type" => "mediumtext", "comment" => "Access Control - list of denied contact.id"],
- "deny_gid" => ["type" => "mediumtext", "comment" => "Access Control - list of denied groups"],
- ],
- "indexes" => [
- "PRIMARY" => ["id"],
- "uid_allow_cid_allow_gid_deny_cid_deny_gid" => ["allow_cid(50)", "allow_gid(30)", "deny_cid(50)", "deny_gid(30)"],
- ]
- ],
"photo" => [
"comment" => "photo storage",
"fields" => [
"poll_id" => ["poll_id"],
]
],
+ "post-category" => [
+ "comment" => "post relation to categories",
+ "fields" => [
+ "uri-id" => ["type" => "int unsigned", "not null" => "1", "primary" => "1", "foreign" => ["item-uri" => "id"], "comment" => "Id of the item-uri table entry that contains the item uri"],
+ "uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "primary" => "1", "relation" => ["user" => "uid"], "comment" => "User id"],
+ "type" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "0", "primary" => "1", "comment" => ""],
+ "tid" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "primary" => "1", "foreign" => ["tag" => "id", "on delete" => "restrict"], "comment" => ""],
+ ],
+ "indexes" => [
+ "PRIMARY" => ["uri-id", "uid", "type", "tid"],
+ "uri-id" => ["tid"]
+ ]
+ ],
+ "post-delivery-data" => [
+ "comment" => "Delivery data for items",
+ "fields" => [
+ "uri-id" => ["type" => "int unsigned", "not null" => "1", "primary" => "1", "foreign" => ["item-uri" => "id"], "comment" => "Id of the item-uri table entry that contains the item uri"],
+ "postopts" => ["type" => "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" => ["type" => "mediumtext", "comment" => "Additional receivers of the linked item"],
+ "queue_count" => ["type" => "mediumint", "not null" => "1", "default" => "0", "comment" => "Initial number of delivery recipients, used as item.delivery_queue_count"],
+ "queue_done" => ["type" => "mediumint", "not null" => "1", "default" => "0", "comment" => "Number of successful deliveries, used as item.delivery_queue_done"],
+ "queue_failed" => ["type" => "mediumint", "not null" => "1", "default" => "0", "comment" => "Number of unsuccessful deliveries, used as item.delivery_queue_failed"],
+ "activitypub" => ["type" => "mediumint", "not null" => "1", "default" => "0", "comment" => "Number of successful deliveries via ActivityPub"],
+ "dfrn" => ["type" => "mediumint", "not null" => "1", "default" => "0", "comment" => "Number of successful deliveries via DFRN"],
+ "legacy_dfrn" => ["type" => "mediumint", "not null" => "1", "default" => "0", "comment" => "Number of successful deliveries via legacy DFRN"],
+ "diaspora" => ["type" => "mediumint", "not null" => "1", "default" => "0", "comment" => "Number of successful deliveries via Diaspora"],
+ "ostatus" => ["type" => "mediumint", "not null" => "1", "default" => "0", "comment" => "Number of successful deliveries via OStatus"],
+ ],
+ "indexes" => [
+ "PRIMARY" => ["uri-id"],
+ ]
+ ],
+ "post-tag" => [
+ "comment" => "post relation to tags",
+ "fields" => [
+ "uri-id" => ["type" => "int unsigned", "not null" => "1", "primary" => "1", "foreign" => ["item-uri" => "id"], "comment" => "Id of the item-uri table entry that contains the item uri"],
+ "type" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "0", "primary" => "1", "comment" => ""],
+ "tid" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "primary" => "1", "foreign" => ["tag" => "id", "on delete" => "restrict"], "comment" => ""],
+ "cid" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "primary" => "1", "foreign" => ["contact" => "id", "on delete" => "restrict"], "comment" => "Contact id of the mentioned public contact"],
+ ],
+ "indexes" => [
+ "PRIMARY" => ["uri-id", "type", "tid", "cid"],
+ "tid" => ["tid"],
+ "cid" => ["cid"]
+ ]
+ ],
"process" => [
"comment" => "Currently running system processes",
"fields" => [
"expire" => ["expire"],
]
],
- "tag" => [
- "comment" => "tags and mentions",
- "fields" => [
- "id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => ""],
- "name" => ["type" => "varchar(96)", "not null" => "1", "default" => "", "comment" => ""],
- "url" => ["type" => "varbinary(255)", "not null" => "1", "default" => "", "comment" => ""]
- ],
- "indexes" => [
- "PRIMARY" => ["id"],
- "type_name_url" => ["UNIQUE", "name", "url"],
- "url" => ["url"]
- ]
- ],
- "post-category" => [
- "comment" => "post relation to categories",
- "fields" => [
- "uri-id" => ["type" => "int unsigned", "not null" => "1", "primary" => "1", "foreign" => ["item-uri" => "id"], "comment" => "Id of the item-uri table entry that contains the item uri"],
- "uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "primary" => "1", "relation" => ["user" => "uid"], "comment" => "User id"],
- "type" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "0", "primary" => "1", "comment" => ""],
- "tid" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "primary" => "1", "foreign" => ["tag" => "id", "on delete" => "restrict"], "comment" => ""],
- ],
- "indexes" => [
- "PRIMARY" => ["uri-id", "uid", "type", "tid"],
- "uri-id" => ["tid"]
- ]
- ],
- "post-delivery-data" => [
- "comment" => "Delivery data for items",
- "fields" => [
- "uri-id" => ["type" => "int unsigned", "not null" => "1", "primary" => "1", "foreign" => ["item-uri" => "id"], "comment" => "Id of the item-uri table entry that contains the item uri"],
- "postopts" => ["type" => "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" => ["type" => "mediumtext", "comment" => "Additional receivers of the linked item"],
- "queue_count" => ["type" => "mediumint", "not null" => "1", "default" => "0", "comment" => "Initial number of delivery recipients, used as item.delivery_queue_count"],
- "queue_done" => ["type" => "mediumint", "not null" => "1", "default" => "0", "comment" => "Number of successful deliveries, used as item.delivery_queue_done"],
- "queue_failed" => ["type" => "mediumint", "not null" => "1", "default" => "0", "comment" => "Number of unsuccessful deliveries, used as item.delivery_queue_failed"],
- "activitypub" => ["type" => "mediumint", "not null" => "1", "default" => "0", "comment" => "Number of successful deliveries via ActivityPub"],
- "dfrn" => ["type" => "mediumint", "not null" => "1", "default" => "0", "comment" => "Number of successful deliveries via DFRN"],
- "legacy_dfrn" => ["type" => "mediumint", "not null" => "1", "default" => "0", "comment" => "Number of successful deliveries via legacy DFRN"],
- "diaspora" => ["type" => "mediumint", "not null" => "1", "default" => "0", "comment" => "Number of successful deliveries via Diaspora"],
- "ostatus" => ["type" => "mediumint", "not null" => "1", "default" => "0", "comment" => "Number of successful deliveries via OStatus"],
- ],
- "indexes" => [
- "PRIMARY" => ["uri-id"],
- ]
- ],
- "post-tag" => [
- "comment" => "post relation to tags",
+ "storage" => [
+ "comment" => "Data stored by Database storage backend",
"fields" => [
- "uri-id" => ["type" => "int unsigned", "not null" => "1", "primary" => "1", "foreign" => ["item-uri" => "id"], "comment" => "Id of the item-uri table entry that contains the item uri"],
- "type" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "0", "primary" => "1", "comment" => ""],
- "tid" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "primary" => "1", "foreign" => ["tag" => "id", "on delete" => "restrict"], "comment" => ""],
- "cid" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "primary" => "1", "foreign" => ["contact" => "id", "on delete" => "restrict"], "comment" => "Contact id of the mentioned public contact"],
+ "id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => "Auto incremented image data id"],
+ "data" => ["type" => "longblob", "not null" => "1", "comment" => "file data"]
],
"indexes" => [
- "PRIMARY" => ["uri-id", "type", "tid", "cid"],
- "tid" => ["tid"],
- "cid" => ["cid"]
+ "PRIMARY" => ["id"]
]
],
"thread" => [
"done_pid_priority_created" => ["done", "pid", "priority", "created"]
]
],
- "storage" => [
- "comment" => "Data stored by Database storage backend",
- "fields" => [
- "id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => "Auto incremented image data id"],
- "data" => ["type" => "longblob", "not null" => "1", "comment" => "file data"]
- ],
- "indexes" => [
- "PRIMARY" => ["id"]
- ]
- ]
];
-