use Friendica\Database\DBA;
if (!defined('DB_UPDATE_VERSION')) {
- define('DB_UPDATE_VERSION', 1466);
+ define('DB_UPDATE_VERSION', 1481);
}
return [
"poll" => ["type" => "varchar(255)", "comment" => ""],
"subscribe" => ["type" => "varchar(255)", "comment" => ""],
"last-update" => ["type" => "datetime", "not null" => "1", "default" => DBA::NULL_DATETIME, "comment" => "Date of the last try to update the contact info"],
+ "next-update" => ["type" => "datetime", "comment" => "Next connection request"],
"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"],
"failed" => ["type" => "boolean", "comment" => "Connection failed"],
"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"],
"last-discovery" => ["type" => "datetime", "not null" => "1", "default" => DBA::NULL_DATETIME, "comment" => "date of the last follower discovery"],
+ "local-data" => ["type" => "boolean", "comment" => "Is true when there are posts with this contact on the system"],
"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"],
"attag_uid" => ["attag(96)", "uid"],
"network_uid_lastupdate" => ["network", "uid", "last-update"],
"uid_network_self_lastupdate" => ["uid", "network", "self", "last-update"],
+ "next-update" => ["next-update"],
+ "local-data-next-update" => ["local-data", "next-update"],
"uid_lastitem" => ["uid", "last-item"],
"baseurl" => ["baseurl(64)"],
"uid_contact-type" => ["uid", "contact-type"],
"uid_self_contact-type" => ["uid", "self", "contact-type"],
"self_network_uid" => ["self", "network", "uid"],
- "gsid" => ["gsid"],
+ "gsid_uid_failed" => ["gsid", "uid", "failed"],
"uri-id" => ["uri-id"],
]
],
"cookie_hash" => ["type" => "varchar(80)", "not null" => "1", "primary" => "1", "comment" => "Trusted cookie hash"],
"uid" => ["type" => "mediumint unsigned", "not null" => "1", "foreign" => ["user" => "uid"], "comment" => "User ID"],
"user_agent" => ["type" => "text", "comment" => "User agent string"],
+ "trusted" => ["type" => "boolean", "not null" => "1", "default" => "1", "comment" => "Whenever this browser should be trusted or not"],
"created" => ["type" => "datetime", "not null" => "1", "comment" => "Datetime the trusted browser was recorded"],
"last_used" => ["type" => "datetime", "comment" => "Datetime the trusted browser was last used"],
],
"featured-tags" => ["type" => "varchar(255)", "comment" => "Address for the collection of featured tags"],
"manually-approve" => ["type" => "boolean", "comment" => ""],
"discoverable" => ["type" => "boolean", "comment" => "Mastodon extension: true if profile is published in their directory"],
+ "suspended" => ["type" => "boolean", "comment" => "Mastodon extension: true if profile is suspended"],
"nick" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
"name" => ["type" => "varchar(255)", "comment" => ""],
"about" => ["type" => "text", "comment" => ""],
"client_id" => ["UNIQUE", "client_id"]
]
],
+ "application-marker" => [
+ "comment" => "Timeline marker",
+ "fields" => [
+ "application-id" => ["type" => "int unsigned", "not null" => "1", "primary" => "1", "foreign" => ["application" => "id"], "comment" => ""],
+ "uid" => ["type" => "mediumint unsigned", "not null" => "1", "primary" => "1", "foreign" => ["user" => "uid"], "comment" => "Owner User id"],
+ "timeline" => ["type" => "varchar(64)", "not null" => "1", "primary" => "1", "comment" => "Marker (home, notifications)"],
+ "last_read_id" => ["type" => "varchar(255)", "comment" => "Marker id for the timeline"],
+ "version" => ["type" => "smallint unsigned", "comment" => "Version number"],
+ "updated_at" => ["type" => "datetime", "comment" => "creation time"],
+ ],
+ "indexes" => [
+ "PRIMARY" => ["application-id", "uid", "timeline"],
+ "uid_id" => ["uid"],
+ ]
+ ],
"application-token" => [
"comment" => "OAuth user token",
"fields" => [
"uid" => ["uid"],
]
],
- "conversation" => [
- "comment" => "Raw data and structure information for messages",
- "fields" => [
- "item-uri" => ["type" => "varbinary(255)", "not null" => "1", "primary" => "1", "comment" => "Original URI of the item - unrelated to the table with the same name"],
- "reply-to-uri" => ["type" => "varbinary(255)", "not null" => "1", "default" => "", "comment" => "URI to which this item is a reply"],
- "conversation-uri" => ["type" => "varbinary(255)", "not null" => "1", "default" => "", "comment" => "GNU Social conversation URI"],
- "conversation-href" => ["type" => "varbinary(255)", "not null" => "1", "default" => "", "comment" => "GNU Social conversation link"],
- "protocol" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "255", "comment" => "The protocol of the item"],
- "direction" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "0", "comment" => "How the message arrived here: 1=push, 2=pull"],
- "source" => ["type" => "mediumtext", "comment" => "Original source"],
- "received" => ["type" => "datetime", "not null" => "1", "default" => DBA::NULL_DATETIME, "comment" => "Receiving date"],
- ],
- "indexes" => [
- "PRIMARY" => ["item-uri"],
- "conversation-uri" => ["conversation-uri"],
- "received" => ["received"],
- ]
- ],
"workerqueue" => [
"comment" => "Background tasks queue entries",
"fields" => [
"uri-id" => ["UNIQUE", "uri-id"],
]
],
+ "fetch-entry" => [
+ "comment" => "",
+ "fields" => [
+ "id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => "sequential ID"],
+ "url" => ["type" => "varbinary(255)", "comment" => "url that awaiting to be fetched"],
+ "created" => ["type" => "datetime", "not null" => "1", "default" => DBA::NULL_DATETIME, "comment" => "Creation date of the fetch request"],
+ "wid" => ["type" => "int unsigned", "foreign" => ["workerqueue" => "id"], "comment" => "Workerqueue id"], ],
+ "indexes" => [
+ "PRIMARY" => ["id"],
+ "url" => ["UNIQUE", "url"],
+ "created" => ["created"],
+ "wid" => ["wid"],
+ ]
+ ],
"fsuggest" => [
"comment" => "friend suggestion stuff",
"fields" => [
"hook_file_function" => ["UNIQUE", "hook", "file", "function"],
]
],
+ "inbox-entry" => [
+ "comment" => "Incoming activity",
+ "fields" => [
+ "id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => "sequential ID"],
+ "activity-id" => ["type" => "varbinary(255)", "comment" => "id of the incoming activity"],
+ "object-id" => ["type" => "varbinary(255)", "comment" => ""],
+ "in-reply-to-id" => ["type" => "varbinary(255)", "comment" => ""],
+ "conversation" => ["type" => "varbinary(255)", "comment" => ""],
+ "type" => ["type" => "varchar(64)", "comment" => "Type of the activity"],
+ "object-type" => ["type" => "varchar(64)", "comment" => "Type of the object activity"],
+ "object-object-type" => ["type" => "varchar(64)", "comment" => "Type of the object's object activity"],
+ "received" => ["type" => "datetime", "comment" => "Receiving date"],
+ "activity" => ["type" => "mediumtext", "comment" => "The JSON activity"],
+ "signer" => ["type" => "varchar(255)", "comment" => ""],
+ "push" => ["type" => "boolean", "comment" => "Is the entry pushed or have pulled it?"],
+ "trust" => ["type" => "boolean", "comment" => "Do we trust this entry?"],
+ "wid" => ["type" => "int unsigned", "foreign" => ["workerqueue" => "id"], "comment" => "Workerqueue id"], ],
+ "indexes" => [
+ "PRIMARY" => ["id"],
+ "activity-id" => ["UNIQUE", "activity-id"],
+ "object-id" => ["object-id"],
+ "received" => ["received"],
+ "wid" => ["wid"],
+ ]
+ ],
+ "inbox-entry-receiver" => [
+ "comment" => "Receiver for the incoming activity",
+ "fields" => [
+ "queue-id" => ["type" => "int unsigned", "not null" => "1", "primary" => "1", "foreign" => ["inbox-entry" => "id"], "comment" => ""],
+ "uid" => ["type" => "mediumint unsigned", "not null" => "1", "primary" => "1", "foreign" => ["user" => "uid"], "comment" => "User id"],
+ ],
+ "indexes" => [
+ "PRIMARY" => ["queue-id", "uid"],
+ "uid" => ["uid"],
+ ]
+ ],
"inbox-status" => [
"comment" => "Status of ActivityPub inboxes",
"fields" => [
"id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => "sequential ID"],
"uid" => ["type" => "mediumint unsigned", "foreign" => ["user" => "uid"], "comment" => "Owner User id"],
"vid" => ["type" => "smallint unsigned", "foreign" => ["verb" => "id", "on delete" => "restrict"], "comment" => "Id of the verb table entry that contains the activity verbs"],
- "type" => ["type" => "tinyint unsigned", "comment" => ""],
+ "type" => ["type" => "smallint unsigned", "comment" => ""],
"actor-id" => ["type" => "int unsigned", "foreign" => ["contact" => "id"], "comment" => "Link to the contact table with uid=0 of the actor that caused the notification"],
"target-uri-id" => ["type" => "int unsigned", "foreign" => ["item-uri" => "id"], "comment" => "Item-uri id of the related post"],
"parent-uri-id" => ["type" => "int unsigned", "foreign" => ["item-uri" => "id"], "comment" => "Item-uri id of the parent of the related post"],
"target-uri-id" => ["target-uri-id"],
"parent-uri-id" => ["parent-uri-id"],
"seen_uid" => ["seen", "uid"],
+ "uid_type_parent-uri-id_actor-id" => ["uid", "type", "parent-uri-id", "actor-id"],
]
],
"notify" => [
"vid" => ["vid"],
]
],
+ "post-activity" => [
+ "comment" => "Original remote activity",
+ "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"],
+ "activity" => ["type" => "mediumtext", "comment" => "Original activity"],
+ "received" => ["type" => "datetime", "comment" => ""],
+ ],
+ "indexes" => [
+ "PRIMARY" => ["uri-id"],
+ ]
+ ],
"post-category" => [
"comment" => "post relation to categories",
"fields" => [
"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" => "0 - Featured"],
+ "author-id" => ["type" => "int unsigned", "foreign" => ["contact" => "id"], "comment" => "Author of the featured post"],
],
"indexes" => [
"PRIMARY" => ["uri-id", "type"],
"type" => ["type"],
+ "author-id" => ["author-id"],
]
],
"post-content" => [
"fields" => [
"id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => "sequential ID"],
"uri-id" => ["type" => "int unsigned", "not null" => "1", "foreign" => ["item-uri" => "id"], "comment" => "Id of the item-uri table entry that contains the item uri"],
- "url" => ["type" => "varbinary(511)", "not null" => "1", "comment" => "Media URL"],
+ "url" => ["type" => "varbinary(1024)", "not null" => "1", "comment" => "Media URL"],
"type" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "0", "comment" => "Media type"],
"mimetype" => ["type" => "varchar(60)", "comment" => ""],
"height" => ["type" => "smallint unsigned", "comment" => "Height of the media"],
"width" => ["type" => "smallint unsigned", "comment" => "Width of the media"],
- "size" => ["type" => "int unsigned", "comment" => "Media size"],
- "preview" => ["type" => "varbinary(255)", "comment" => "Preview URL"],
+ "size" => ["type" => "bigint unsigned", "comment" => "Media size"],
+ "preview" => ["type" => "varbinary(512)", "comment" => "Preview URL"],
"preview-height" => ["type" => "smallint unsigned", "comment" => "Height of the preview picture"],
"preview-width" => ["type" => "smallint unsigned", "comment" => "Width of the preview picture"],
"description" => ["type" => "text", "comment" => ""],
],
"indexes" => [
"PRIMARY" => ["id"],
- "uri-id-url" => ["UNIQUE", "uri-id", "url"],
+ "uri-id-url" => ["UNIQUE", "uri-id", "url(512)"],
"uri-id-id" => ["uri-id", "id"],
]
],
"comment" => "Thread related data",
"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"],
+ "conversation-id" => ["type" => "int unsigned", "foreign" => ["item-uri" => "id"], "comment" => "Id of the item-uri table entry that contains the conversation uri"],
"owner-id" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "foreign" => ["contact" => "id", "on delete" => "restrict"], "comment" => "Item owner"],
"author-id" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "foreign" => ["contact" => "id", "on delete" => "restrict"], "comment" => "Item author"],
"causer-id" => ["type" => "int unsigned", "foreign" => ["contact" => "id", "on delete" => "restrict"], "comment" => "Link to the contact table with uid=0 of the contact that caused the item creation"],
],
"indexes" => [
"PRIMARY" => ["uri-id"],
+ "conversation-id" => ["conversation-id"],
"owner-id" => ["owner-id"],
"author-id" => ["author-id"],
"causer-id" => ["causer-id"],
"author-id_uid" => ["author-id", "uid"],
"author-id_received" => ["author-id", "received"],
"parent-uri-id_uid" => ["parent-uri-id", "uid"],
+ "uid_wall_received" => ["uid", "wall", "received"],
"uid_contactid" => ["uid", "contact-id"],
"uid_unseen_contactid" => ["uid", "unseen", "contact-id"],
"uid_unseen" => ["uid", "unseen"],
"comment" => "Thread related data per user",
"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"],
+ "conversation-id" => ["type" => "int unsigned", "foreign" => ["item-uri" => "id"], "comment" => "Id of the item-uri table entry that contains the conversation uri"],
"owner-id" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "foreign" => ["contact" => "id", "on delete" => "restrict"], "comment" => "Item owner"],
"author-id" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "foreign" => ["contact" => "id", "on delete" => "restrict"], "comment" => "Item author"],
"causer-id" => ["type" => "int unsigned", "foreign" => ["contact" => "id", "on delete" => "restrict"], "comment" => "Link to the contact table with uid=0 of the contact that caused the item creation"],
"indexes" => [
"PRIMARY" => ["uid", "uri-id"],
"uri-id" => ["uri-id"],
+ "conversation-id" => ["conversation-id"],
"owner-id" => ["owner-id"],
"author-id" => ["author-id"],
"causer-id" => ["causer-id"],
"uri-id_uid" => ["UNIQUE", "uri-id", "uid"],
]
],
+ "arrived-activity" => [
+ "comment" => "Id of arrived activities",
+ "fields" => [
+ "object-id" => ["type" => "varbinary(255)", "not null" => "1", "primary" => "1", "comment" => "object id of the incoming activity"],
+ "received" => ["type" => "datetime", "comment" => "Receiving date"],
+ ],
+ "indexes" => [
+ "PRIMARY" => ["object-id"],
+ ],
+ "engine" => "MEMORY",
+ ],
+ "fetched-activity" => [
+ "comment" => "Id of fetched activities",
+ "fields" => [
+ "object-id" => ["type" => "varbinary(255)", "not null" => "1", "primary" => "1", "comment" => "object id of fetched activity"],
+ "received" => ["type" => "datetime", "comment" => "Receiving date"],
+ ],
+ "indexes" => [
+ "PRIMARY" => ["object-id"],
+ ],
+ "engine" => "MEMORY",
+ ],
"worker-ipc" => [
"comment" => "Inter process communication between the frontend and the worker",
"fields" => [