diff options
Diffstat (limited to 'install')
-rwxr-xr-x | install/htconfig.sample.php | 8 | ||||
-rw-r--r-- | install/sample-nginx.conf | 2 | ||||
-rw-r--r-- | install/schema_mysql.sql | 792 | ||||
-rw-r--r-- | install/schema_postgres.sql | 312 | ||||
-rw-r--r-- | install/update.php | 434 |
5 files changed, 1153 insertions, 395 deletions
diff --git a/install/htconfig.sample.php b/install/htconfig.sample.php index f37b3dc79..07725e3f4 100755 --- a/install/htconfig.sample.php +++ b/install/htconfig.sample.php @@ -44,14 +44,6 @@ App::$config['system']['sitename'] = "Hubzilla"; App::$config['system']['location_hash'] = 'if the auto install failed, put a unique random string here'; -// Choices are 'basic', 'standard', and 'pro'. -// basic sets up the sevrer for basic social networking and removes "complicated" features -// standard provides most desired features except e-commerce -// pro gives you access to everything, but removes cross-platform federation/emulation - -App::$config['system']['server_role'] = 'standard'; - - // These lines set additional security headers to be sent with all responses // You may wish to set transport_security_header to 0 if your server already sends // this header. content_security_policy may need to be disabled if you wish to diff --git a/install/sample-nginx.conf b/install/sample-nginx.conf index 85178596a..4121ff2ec 100644 --- a/install/sample-nginx.conf +++ b/install/sample-nginx.conf @@ -56,7 +56,7 @@ server { ssl_certificate_key /etc/nginx/ssl/example.net.key; ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; - ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-DSS-AES128-SHA256:DHE-DSS-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA:!DHE-RSA-AES128-GCM-SHA256:!DHE-RSA-AES256-GCM-SHA384:!DHE-RSA-AES128-SHA256:!DHE-RSA-AES256-SHA:!DHE-RSA-AES128-SHA:!DHE-RSA-AES256-SHA256:!DHE-RSA-CAMELLIA128-SHA:!DHE-RSA-CAMELLIA256-SHA; + ssl_ciphers ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS; ssl_prefer_server_ciphers on; fastcgi_param HTTPS on; diff --git a/install/schema_mysql.sql b/install/schema_mysql.sql index faaf167a2..9e2e401b5 100644 --- a/install/schema_mysql.sql +++ b/install/schema_mysql.sql @@ -2,22 +2,22 @@ CREATE TABLE IF NOT EXISTS `abconfig` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `chan` int(10) unsigned NOT NULL DEFAULT 0 , - `xchan` char(255) NOT NULL DEFAULT '', - `cat` char(255) NOT NULL DEFAULT '', - `k` char(255) NOT NULL DEFAULT '', + `xchan` char(191) NOT NULL DEFAULT '', + `cat` char(191) NOT NULL DEFAULT '', + `k` char(191) NOT NULL DEFAULT '', `v` mediumtext NOT NULL, PRIMARY KEY (`id`), KEY `chan` (`chan`), KEY `xchan` (`xchan`), KEY `cat` (`cat`), KEY `k` (`k`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `abook` ( `abook_id` int(10) unsigned NOT NULL AUTO_INCREMENT, `abook_account` int(10) unsigned NOT NULL DEFAULT 0 , `abook_channel` int(10) unsigned NOT NULL DEFAULT 0 , - `abook_xchan` char(255) NOT NULL DEFAULT '', + `abook_xchan` char(191) NOT NULL DEFAULT '', `abook_my_perms` int(11) NOT NULL DEFAULT 0 , `abook_their_perms` int(11) NOT NULL DEFAULT 0 , `abook_closeness` tinyint(3) unsigned NOT NULL DEFAULT 99, @@ -35,7 +35,7 @@ CREATE TABLE IF NOT EXISTS `abook` ( `abook_self` tinyint(4) NOT NULL DEFAULT 0 , `abook_feed` tinyint(4) NOT NULL DEFAULT 0 , `abook_not_here` tinyint(4) NOT NULL DEFAULT 0 , - `abook_profile` char(64) NOT NULL DEFAULT '', + `abook_profile` char(191) NOT NULL DEFAULT '', `abook_incl` text NOT NULL, `abook_excl` text NOT NULL, `abook_instance` text NOT NULL, @@ -61,22 +61,22 @@ CREATE TABLE IF NOT EXISTS `abook` ( KEY `abook_self` (`abook_self`), KEY `abook_not_here` (`abook_not_here`), KEY `abook_feed` (`abook_feed`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `account` ( `account_id` int(10) unsigned NOT NULL AUTO_INCREMENT, `account_parent` int(10) unsigned NOT NULL DEFAULT 0 , `account_default_channel` int(10) unsigned NOT NULL DEFAULT 0 , `account_salt` char(32) NOT NULL DEFAULT '', - `account_password` char(255) NOT NULL DEFAULT '', - `account_email` char(255) NOT NULL DEFAULT '', - `account_external` char(255) NOT NULL DEFAULT '', + `account_password` char(191) NOT NULL DEFAULT '', + `account_email` char(191) NOT NULL DEFAULT '', + `account_external` char(191) NOT NULL DEFAULT '', `account_language` char(16) NOT NULL DEFAULT 'en', `account_created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `account_lastlog` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `account_flags` int(10) unsigned NOT NULL DEFAULT 0 , `account_roles` int(10) unsigned NOT NULL DEFAULT 0 , - `account_reset` char(255) NOT NULL DEFAULT '', + `account_reset` char(191) NOT NULL DEFAULT '', `account_expires` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `account_expire_notified` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `account_service_class` char(32) NOT NULL DEFAULT '', @@ -94,12 +94,12 @@ CREATE TABLE IF NOT EXISTS `account` ( KEY `account_external` (`account_external`), KEY `account_level` (`account_level`), KEY `account_password_changed` (`account_password_changed`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `addon` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `aname` char(255) NOT NULL DEFAULT '', - `version` char(255) NOT NULL DEFAULT '', + `aname` char(191) NOT NULL DEFAULT '', + `version` char(191) NOT NULL DEFAULT '', `installed` tinyint(1) NOT NULL DEFAULT 0 , `hidden` tinyint(1) NOT NULL DEFAULT 0 , `tstamp` bigint(20) NOT NULL DEFAULT 0 , @@ -108,26 +108,26 @@ CREATE TABLE IF NOT EXISTS `addon` ( KEY `hidden` (`hidden`), KEY `aname` (`aname`), KEY `installed` (`installed`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `app` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `app_id` char(255) NOT NULL DEFAULT '', - `app_sig` char(255) NOT NULL DEFAULT '', - `app_author` char(255) NOT NULL DEFAULT '', - `app_name` char(255) NOT NULL DEFAULT '', + `app_id` char(191) NOT NULL DEFAULT '', + `app_sig` char(191) NOT NULL DEFAULT '', + `app_author` char(191) NOT NULL DEFAULT '', + `app_name` char(191) NOT NULL DEFAULT '', `app_desc` text NOT NULL, - `app_url` char(255) NOT NULL DEFAULT '', - `app_photo` char(255) NOT NULL DEFAULT '', - `app_version` char(255) NOT NULL DEFAULT '', + `app_url` char(191) NOT NULL DEFAULT '', + `app_photo` char(191) NOT NULL DEFAULT '', + `app_version` char(191) NOT NULL DEFAULT '', `app_channel` int(11) NOT NULL DEFAULT 0 , - `app_addr` char(255) NOT NULL DEFAULT '', - `app_price` char(255) NOT NULL DEFAULT '', - `app_page` char(255) NOT NULL DEFAULT '', - `app_requires` char(255) NOT NULL DEFAULT '', + `app_addr` char(191) NOT NULL DEFAULT '', + `app_price` char(191) NOT NULL DEFAULT '', + `app_page` char(191) NOT NULL DEFAULT '', + `app_requires` char(191) NOT NULL DEFAULT '', `app_deleted` int(11) NOT NULL DEFAULT 0 , `app_system` int(11) NOT NULL DEFAULT 0 , - `app_plugin` char(255) NOT NULL DEFAULT '', + `app_plugin` char(191) NOT NULL DEFAULT '', `app_created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `app_edited` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', PRIMARY KEY (`id`), @@ -142,15 +142,15 @@ CREATE TABLE IF NOT EXISTS `app` ( KEY `app_deleted` (`app_deleted`), KEY `app_system` (`app_system`), KEY `app_edited` (`app_edited`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `atoken` ( `atoken_id` int(11) NOT NULL AUTO_INCREMENT, - `atoken_aid` int(11) NOT NULL DEFAULT 0, - `atoken_uid` int(11) NOT NULL DEFAULT 0, - `atoken_name` char(255) NOT NULL DEFAULT '', - `atoken_token` char(255) NOT NULL DEFAULT '', + `atoken_aid` int(11) NOT NULL DEFAULT 0 , + `atoken_uid` int(11) NOT NULL DEFAULT 0 , + `atoken_name` char(191) NOT NULL DEFAULT '', + `atoken_token` char(191) NOT NULL DEFAULT '', `atoken_expires` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', PRIMARY KEY (`atoken_id`), KEY `atoken_aid` (`atoken_aid`), @@ -159,19 +159,19 @@ CREATE TABLE IF NOT EXISTS `atoken` ( KEY `atoken_name` (`atoken_name`), KEY `atoken_token` (`atoken_token`), KEY `atoken_expires` (`atoken_expires`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `attach` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `aid` int(10) unsigned NOT NULL DEFAULT 0 , `uid` int(10) unsigned NOT NULL DEFAULT 0 , - `hash` char(64) NOT NULL DEFAULT '', - `creator` char(128) NOT NULL DEFAULT '', - `filename` char(255) NOT NULL DEFAULT '', - `filetype` char(64) NOT NULL DEFAULT '', + `hash` char(191) NOT NULL DEFAULT '', + `creator` char(191) NOT NULL DEFAULT '', + `filename` char(191) NOT NULL DEFAULT '', + `filetype` char(191) NOT NULL DEFAULT '', `filesize` int(10) unsigned NOT NULL DEFAULT 0 , `revision` int(10) unsigned NOT NULL DEFAULT 0 , - `folder` char(64) NOT NULL DEFAULT '', + `folder` char(191) NOT NULL DEFAULT '', `flags` int(10) unsigned NOT NULL DEFAULT 0 , `is_dir` tinyint(1) NOT NULL DEFAULT 0 , `is_photo` tinyint(1) NOT NULL DEFAULT 0 , @@ -201,7 +201,7 @@ CREATE TABLE IF NOT EXISTS `attach` ( KEY `is_dir` (`is_dir`), KEY `is_photo` (`is_photo`), KEY `os_storage` (`os_storage`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `auth_codes` ( `id` varchar(40) NOT NULL DEFAULT '', @@ -210,48 +210,48 @@ CREATE TABLE IF NOT EXISTS `auth_codes` ( `expires` int(11) NOT NULL DEFAULT 0 , `auth_scope` varchar(512) NOT NULL DEFAULT '', PRIMARY KEY (`id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `cache` ( - `k` char(255) NOT NULL DEFAULT '', + `k` char(191) NOT NULL DEFAULT '', `v` text NOT NULL, `updated` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', PRIMARY KEY (`k`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `cal` ( `cal_id` int(10) unsigned NOT NULL AUTO_INCREMENT, `cal_aid` int(10) unsigned NOT NULL DEFAULT 0 , `cal_uid` int(10) unsigned NOT NULL DEFAULT 0 , - `cal_hash` varchar(255) NOT NULL DEFAULT '', - `cal_name` varchar(255) NOT NULL DEFAULT '', - `uri` varchar(255) NOT NULL DEFAULT '', - `logname` varchar(255) NOT NULL DEFAULT '', - `pass` varchar(255) NOT NULL DEFAULT '', - `ctag` varchar(255) NOT NULL DEFAULT '', - `synctoken` varchar(255) NOT NULL DEFAULT '', - `cal_types` varchar(255) NOT NULL DEFAULT '', + `cal_hash` varchar(191) NOT NULL DEFAULT '', + `cal_name` varchar(191) NOT NULL DEFAULT '', + `uri` varchar(191) NOT NULL DEFAULT '', + `logname` varchar(191) NOT NULL DEFAULT '', + `pass` varchar(191) NOT NULL DEFAULT '', + `ctag` varchar(191) NOT NULL DEFAULT '', + `synctoken` varchar(191) NOT NULL DEFAULT '', + `cal_types` varchar(191) NOT NULL DEFAULT '', PRIMARY KEY (`cal_id`), KEY `cal_aid` (`cal_aid`), KEY `cal_uid` (`cal_uid`), KEY `cal_hash` (`cal_hash`), KEY `cal_name` (`cal_name`), KEY `cal_types` (`cal_types`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `channel` ( `channel_id` int(10) unsigned NOT NULL AUTO_INCREMENT, `channel_account_id` int(10) unsigned NOT NULL DEFAULT 0 , `channel_primary` tinyint(1) unsigned NOT NULL DEFAULT 0 , - `channel_name` char(255) NOT NULL DEFAULT '', - `channel_address` char(255) NOT NULL DEFAULT '', - `channel_guid` char(255) NOT NULL DEFAULT '', + `channel_name` char(191) NOT NULL DEFAULT '', + `channel_address` char(191) NOT NULL DEFAULT '', + `channel_guid` char(191) NOT NULL DEFAULT '', `channel_guid_sig` text NOT NULL, - `channel_hash` char(255) NOT NULL DEFAULT '', + `channel_hash` char(191) NOT NULL DEFAULT '', `channel_timezone` char(128) NOT NULL DEFAULT 'UTC', - `channel_location` char(255) NOT NULL DEFAULT '', - `channel_theme` char(255) NOT NULL DEFAULT '', - `channel_startpage` char(255) NOT NULL DEFAULT '', + `channel_location` char(191) NOT NULL DEFAULT '', + `channel_theme` char(191) NOT NULL DEFAULT '', + `channel_startpage` char(191) NOT NULL DEFAULT '', `channel_pubkey` text NOT NULL, `channel_prvkey` text NOT NULL, `channel_notifyflags` int(10) unsigned NOT NULL DEFAULT 65535, @@ -262,8 +262,8 @@ CREATE TABLE IF NOT EXISTS `channel` ( `channel_max_anon_mail` int(10) unsigned NOT NULL DEFAULT 10, `channel_max_friend_req` int(10) unsigned NOT NULL DEFAULT 10, `channel_expire_days` int(11) NOT NULL DEFAULT 0 , - `channel_passwd_reset` char(255) NOT NULL DEFAULT '', - `channel_default_group` char(255) NOT NULL DEFAULT '', + `channel_passwd_reset` char(191) NOT NULL DEFAULT '', + `channel_default_group` char(191) NOT NULL DEFAULT '', `channel_allow_cid` mediumtext NOT NULL, `channel_allow_gid` mediumtext NOT NULL, `channel_deny_cid` mediumtext NOT NULL, @@ -288,11 +288,11 @@ CREATE TABLE IF NOT EXISTS `channel` ( `channel_w_like` int(10) unsigned NOT NULL DEFAULT 0 , `channel_removed` tinyint(1) NOT NULL DEFAULT 0 , `channel_system` tinyint(1) NOT NULL DEFAULT 0 , - `channel_moved` char(255) NOT NULL DEFAULT '', - `channel_password` varchar(255) NOT NULL, - `channel_salt` varchar(255) NOT NULL, + `channel_moved` char(191) NOT NULL DEFAULT '', + `channel_password` varchar(191) NOT NULL, + `channel_salt` varchar(191) NOT NULL, PRIMARY KEY (`channel_id`), - UNIQUE KEY `channel_address_unique` (`channel_address`), + KEY `channel_address` (`channel_address`), KEY `channel_account_id` (`channel_account_id`), KEY `channel_primary` (`channel_primary`), KEY `channel_name` (`channel_name`), @@ -304,66 +304,48 @@ CREATE TABLE IF NOT EXISTS `channel` ( KEY `channel_max_anon_mail` (`channel_max_anon_mail`), KEY `channel_max_friend_req` (`channel_max_friend_req`), KEY `channel_default_gid` (`channel_default_group`), - KEY `channel_r_stream` (`channel_r_stream`), - KEY `channel_r_profile` (`channel_r_profile`), - KEY `channel_r_photos` (`channel_r_photos`), - KEY `channel_r_abook` (`channel_r_abook`), - KEY `channel_w_stream` (`channel_w_stream`), - KEY `channel_w_wall` (`channel_w_wall`), - KEY `channel_w_tagwall` (`channel_w_tagwall`), - KEY `channel_w_comment` (`channel_w_comment`), - KEY `channel_w_mail` (`channel_w_mail`), - KEY `channel_w_photos` (`channel_w_photos`), - KEY `channel_w_chat` (`channel_w_chat`), KEY `channel_guid` (`channel_guid`), KEY `channel_hash` (`channel_hash`), KEY `channel_expire_days` (`channel_expire_days`), - KEY `channel_a_delegate` (`channel_a_delegate`), - KEY `channel_r_storage` (`channel_r_storage`), - KEY `channel_w_storage` (`channel_w_storage`), - KEY `channel_r_pages` (`channel_r_pages`), - KEY `channel_w_pages` (`channel_w_pages`), KEY `channel_deleted` (`channel_deleted`), - KEY `channel_a_republish` (`channel_a_republish`), KEY `channel_dirdate` (`channel_dirdate`), - KEY `channel_w_like` (`channel_w_like`), KEY `channel_removed` (`channel_removed`), KEY `channel_system` (`channel_system`), KEY `channel_lastpost` (`channel_lastpost`), KEY `channel_moved` (`channel_moved`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `chat` ( `chat_id` int(10) unsigned NOT NULL AUTO_INCREMENT, `chat_room` int(10) unsigned NOT NULL DEFAULT 0 , - `chat_xchan` char(255) NOT NULL DEFAULT '', + `chat_xchan` char(191) NOT NULL DEFAULT '', `chat_text` mediumtext NOT NULL, `created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', PRIMARY KEY (`chat_id`), KEY `chat_room` (`chat_room`), KEY `chat_xchan` (`chat_xchan`), KEY `created` (`created`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `chatpresence` ( `cp_id` int(10) unsigned NOT NULL AUTO_INCREMENT, `cp_room` int(10) unsigned NOT NULL DEFAULT 0 , - `cp_xchan` char(255) NOT NULL DEFAULT '', + `cp_xchan` char(191) NOT NULL DEFAULT '', `cp_last` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', - `cp_status` char(255) NOT NULL DEFAULT '', + `cp_status` char(191) NOT NULL DEFAULT '', `cp_client` char(128) NOT NULL DEFAULT '', PRIMARY KEY (`cp_id`), KEY `cp_room` (`cp_room`), KEY `cp_xchan` (`cp_xchan`), KEY `cp_last` (`cp_last`), KEY `cp_status` (`cp_status`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `chatroom` ( `cr_id` int(10) unsigned NOT NULL AUTO_INCREMENT, `cr_aid` int(10) unsigned NOT NULL DEFAULT 0 , `cr_uid` int(10) unsigned NOT NULL DEFAULT 0 , - `cr_name` char(255) NOT NULL DEFAULT '', + `cr_name` char(191) NOT NULL DEFAULT '', `cr_created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `cr_edited` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `cr_expire` int(10) unsigned NOT NULL DEFAULT 0 , @@ -378,51 +360,51 @@ CREATE TABLE IF NOT EXISTS `chatroom` ( KEY `cr_created` (`cr_created`), KEY `cr_edited` (`cr_edited`), KEY `cr_expire` (`cr_expire`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `clients` ( - `client_id` varchar(20) NOT NULL DEFAULT '', - `pw` varchar(20) NOT NULL DEFAULT '', + `client_id` varchar(191) NOT NULL DEFAULT '', + `pw` varchar(191) NOT NULL DEFAULT '', `redirect_uri` varchar(200) NOT NULL DEFAULT '', `clname` text, `icon` text, `uid` int(11) NOT NULL DEFAULT 0 , PRIMARY KEY (`client_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `config` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `cat` char(255) CHARACTER SET ascii NOT NULL DEFAULT '', - `k` char(255) CHARACTER SET ascii NOT NULL DEFAULT '', + `cat` char(191) NOT NULL DEFAULT '', + `k` char(191) NOT NULL DEFAULT '', `v` text NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `access` (`cat`,`k`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `conv` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `guid` char(255) NOT NULL DEFAULT '', + `guid` char(191) NOT NULL DEFAULT '', `recips` mediumtext NOT NULL, `uid` int(11) NOT NULL DEFAULT 0 , - `creator` char(255) NOT NULL DEFAULT '', + `creator` char(191) NOT NULL DEFAULT '', `created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `updated` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `subject` mediumtext NOT NULL, PRIMARY KEY (`id`), KEY `created` (`created`), KEY `updated` (`updated`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `dreport` ( `dreport_id` int(11) NOT NULL AUTO_INCREMENT, `dreport_channel` int(11) NOT NULL DEFAULT 0 , - `dreport_mid` char(255) NOT NULL DEFAULT '', - `dreport_site` char(255) NOT NULL DEFAULT '', - `dreport_recip` char(255) NOT NULL DEFAULT '', - `dreport_result` char(255) NOT NULL DEFAULT '', + `dreport_mid` char(191) NOT NULL DEFAULT '', + `dreport_site` char(191) NOT NULL DEFAULT '', + `dreport_recip` char(191) NOT NULL DEFAULT '', + `dreport_result` char(191) NOT NULL DEFAULT '', `dreport_time` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', - `dreport_xchan` char(255) NOT NULL DEFAULT '', - `dreport_queue` char(255) NOT NULL DEFAULT '', + `dreport_xchan` char(191) NOT NULL DEFAULT '', + `dreport_queue` char(191) NOT NULL DEFAULT '', PRIMARY KEY (`dreport_id`), KEY `dreport_mid` (`dreport_mid`), KEY `dreport_site` (`dreport_site`), @@ -430,15 +412,15 @@ CREATE TABLE IF NOT EXISTS `dreport` ( KEY `dreport_xchan` (`dreport_xchan`), KEY `dreport_queue` (`dreport_queue`), KEY `dreport_channel` (`dreport_channel`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `event` ( `id` int(11) NOT NULL AUTO_INCREMENT, `aid` int(10) unsigned NOT NULL DEFAULT 0 , `uid` int(11) NOT NULL DEFAULT 0 , `cal_id` int(11) unsigned NOT NULL DEFAULT 0 , - `event_xchan` char(255) NOT NULL DEFAULT '', - `event_hash` char(255) NOT NULL DEFAULT '', + `event_xchan` char(191) NOT NULL DEFAULT '', + `event_hash` char(191) NOT NULL DEFAULT '', `created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `edited` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `dtstart` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', @@ -446,7 +428,7 @@ CREATE TABLE IF NOT EXISTS `event` ( `summary` text NOT NULL, `description` text NOT NULL, `location` text NOT NULL, - `etype` char(255) NOT NULL DEFAULT '', + `etype` char(191) NOT NULL DEFAULT '', `nofinish` tinyint(1) NOT NULL DEFAULT 0 , `adjust` tinyint(1) NOT NULL DEFAULT 1, `dismissed` tinyint(1) NOT NULL DEFAULT 0 , @@ -454,7 +436,7 @@ CREATE TABLE IF NOT EXISTS `event` ( `allow_gid` mediumtext NOT NULL, `deny_cid` mediumtext NOT NULL, `deny_gid` mediumtext NOT NULL, - `event_status` char(255) NOT NULL DEFAULT '', + `event_status` char(191) NOT NULL DEFAULT '', `event_status_date` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `event_percent` smallint(6) NOT NULL DEFAULT 0 , `event_repeat` text NOT NULL, @@ -476,61 +458,61 @@ CREATE TABLE IF NOT EXISTS `event` ( KEY `event_status` (`event_status`), KEY `event_sequence` (`event_sequence`), KEY `event_priority` (`event_priority`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `groups` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `hash` char(255) NOT NULL DEFAULT '', + `hash` char(191) NOT NULL DEFAULT '', `uid` int(10) unsigned NOT NULL DEFAULT 0 , `visible` tinyint(1) NOT NULL DEFAULT 0 , `deleted` tinyint(1) NOT NULL DEFAULT 0 , - `gname` char(255) NOT NULL DEFAULT '', + `gname` char(191) NOT NULL DEFAULT '', PRIMARY KEY (`id`), KEY `uid` (`uid`), KEY `visible` (`visible`), KEY `deleted` (`deleted`), KEY `hash` (`hash`), KEY `gname` (`gname`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `group_member` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `uid` int(10) unsigned NOT NULL DEFAULT 0 , `gid` int(10) unsigned NOT NULL DEFAULT 0 , - `xchan` char(255) NOT NULL DEFAULT '', + `xchan` char(191) NOT NULL DEFAULT '', PRIMARY KEY (`id`), KEY `uid` (`uid`), KEY `gid` (`gid`), KEY `xchan` (`xchan`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `hook` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `hook` char(255) NOT NULL DEFAULT '', - `file` char(255) NOT NULL DEFAULT '', - `fn` char(255) NOT NULL DEFAULT '', + `hook` char(191) NOT NULL DEFAULT '', + `file` char(191) NOT NULL DEFAULT '', + `fn` char(191) NOT NULL DEFAULT '', `priority` smallint NOT NULL DEFAULT 0 , `hook_version` int(11) NOT NULL DEFAULT 0 , PRIMARY KEY (`id`), KEY `hook` (`hook`), KEY `priority` (`priority`), KEY `hook_version` (`hook_version`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `hubloc` ( `hubloc_id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `hubloc_guid` char(255) NOT NULL DEFAULT '', + `hubloc_guid` char(191) NOT NULL DEFAULT '', `hubloc_guid_sig` text NOT NULL, - `hubloc_hash` char(255) NOT NULL DEFAULT '', - `hubloc_addr` char(255) NOT NULL DEFAULT '', + `hubloc_hash` char(191) NOT NULL DEFAULT '', + `hubloc_addr` char(191) NOT NULL DEFAULT '', `hubloc_network` char(32) NOT NULL DEFAULT '', `hubloc_flags` int(10) unsigned NOT NULL DEFAULT 0 , `hubloc_status` int(10) unsigned NOT NULL DEFAULT 0 , - `hubloc_url` char(255) NOT NULL DEFAULT '', + `hubloc_url` char(191) NOT NULL DEFAULT '', `hubloc_url_sig` text NOT NULL, - `hubloc_host` char(255) NOT NULL DEFAULT '', - `hubloc_callback` char(255) NOT NULL DEFAULT '', - `hubloc_connect` char(255) NOT NULL DEFAULT '', + `hubloc_host` char(191) NOT NULL DEFAULT '', + `hubloc_callback` char(191) NOT NULL DEFAULT '', + `hubloc_connect` char(191) NOT NULL DEFAULT '', `hubloc_sitekey` text NOT NULL, `hubloc_updated` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `hubloc_connected` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', @@ -541,6 +523,7 @@ CREATE TABLE IF NOT EXISTS `hubloc` ( PRIMARY KEY (`hubloc_id`), KEY `hubloc_url` (`hubloc_url`), KEY `hubloc_guid` (`hubloc_guid`), + KEY `hubloc_hash` (`hubloc_hash`), KEY `hubloc_flags` (`hubloc_flags`), KEY `hubloc_connect` (`hubloc_connect`), KEY `hubloc_host` (`hubloc_host`), @@ -553,14 +536,14 @@ CREATE TABLE IF NOT EXISTS `hubloc` ( KEY `hubloc_orphancheck` (`hubloc_orphancheck`), KEY `hubloc_deleted` (`hubloc_deleted`), KEY `hubloc_error` (`hubloc_error`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `iconfig` ( `id` int(11) NOT NULL AUTO_INCREMENT, `iid` int(11) NOT NULL DEFAULT 0 , - `cat` char(255) NOT NULL DEFAULT '', - `k` char(255) NOT NULL DEFAULT '', + `cat` char(191) NOT NULL DEFAULT '', + `k` char(191) NOT NULL DEFAULT '', `v` mediumtext NOT NULL, `sharing` int(11) NOT NULL DEFAULT 0 , PRIMARY KEY (`id`), @@ -568,16 +551,16 @@ CREATE TABLE IF NOT EXISTS `iconfig` ( KEY `cat` (`cat`), KEY `k` (`k`), KEY `sharing` (`sharing`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `issue` ( `issue_id` int(10) unsigned NOT NULL AUTO_INCREMENT, `issue_created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `issue_updated` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', - `issue_assigned` char(255) NOT NULL DEFAULT '', + `issue_assigned` char(191) NOT NULL DEFAULT '', `issue_priority` int(11) NOT NULL DEFAULT 0 , `issue_status` int(11) NOT NULL DEFAULT 0 , - `issue_component` char(255) NOT NULL DEFAULT '', + `issue_component` char(191) NOT NULL DEFAULT '', PRIMARY KEY (`issue_id`), KEY `issue_created` (`issue_created`), KEY `issue_updated` (`issue_updated`), @@ -585,16 +568,16 @@ CREATE TABLE IF NOT EXISTS `issue` ( KEY `issue_priority` (`issue_priority`), KEY `issue_status` (`issue_status`), KEY `issue_component` (`issue_component`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `item` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `mid` char(255) CHARACTER SET ascii NOT NULL DEFAULT '', + `mid` char(191) NOT NULL DEFAULT '', `aid` int(10) unsigned NOT NULL DEFAULT 0 , `uid` int(10) unsigned NOT NULL DEFAULT 0 , `parent` int(10) unsigned NOT NULL DEFAULT 0 , - `parent_mid` char(255) CHARACTER SET ascii NOT NULL DEFAULT '', - `thr_parent` char(255) NOT NULL DEFAULT '', + `parent_mid` char(191) NOT NULL DEFAULT '', + `thr_parent` char(191) NOT NULL DEFAULT '', `created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `edited` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `expires` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', @@ -602,35 +585,35 @@ CREATE TABLE IF NOT EXISTS `item` ( `received` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `changed` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `comments_closed` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', - `owner_xchan` char(255) NOT NULL DEFAULT '', - `author_xchan` char(255) NOT NULL DEFAULT '', - `source_xchan` char(255) NOT NULL DEFAULT '', - `mimetype` char(255) NOT NULL DEFAULT '', + `owner_xchan` char(191) NOT NULL DEFAULT '', + `author_xchan` char(191) NOT NULL DEFAULT '', + `source_xchan` char(191) NOT NULL DEFAULT '', + `mimetype` char(191) NOT NULL DEFAULT '', `title` text NOT NULL, `body` mediumtext NOT NULL, `html` mediumtext NOT NULL, - `app` char(255) NOT NULL DEFAULT '', + `app` char(191) NOT NULL DEFAULT '', `lang` char(64) NOT NULL DEFAULT '', `revision` int(10) unsigned NOT NULL DEFAULT 0 , - `verb` char(255) NOT NULL DEFAULT '', - `obj_type` char(255) NOT NULL DEFAULT '', + `verb` char(191) NOT NULL DEFAULT '', + `obj_type` char(191) NOT NULL DEFAULT '', `obj` text NOT NULL, - `tgt_type` char(255) NOT NULL DEFAULT '', + `tgt_type` char(191) NOT NULL DEFAULT '', `target` text NOT NULL, - `layout_mid` char(255) NOT NULL DEFAULT '', + `layout_mid` char(191) NOT NULL DEFAULT '', `postopts` text NOT NULL, `route` text NOT NULL, - `llink` char(255) NOT NULL DEFAULT '', - `plink` char(255) NOT NULL DEFAULT '', - `resource_id` char(255) NOT NULL DEFAULT '', + `llink` char(191) NOT NULL DEFAULT '', + `plink` char(191) NOT NULL DEFAULT '', + `resource_id` char(191) NOT NULL DEFAULT '', `resource_type` char(16) NOT NULL DEFAULT '', `attach` mediumtext NOT NULL, `sig` text NOT NULL, `diaspora_meta` mediumtext NOT NULL, - `location` char(255) NOT NULL DEFAULT '', - `coord` char(255) NOT NULL DEFAULT '', - `public_policy` char(255) NOT NULL DEFAULT '', - `comment_policy` char(255) NOT NULL DEFAULT '', + `location` char(191) NOT NULL DEFAULT '', + `coord` char(191) NOT NULL DEFAULT '', + `public_policy` char(191) NOT NULL DEFAULT '', + `comment_policy` char(191) NOT NULL DEFAULT '', `allow_cid` mediumtext NOT NULL, `allow_gid` mediumtext NOT NULL, `deny_cid` mediumtext NOT NULL, @@ -677,6 +660,7 @@ CREATE TABLE IF NOT EXISTS `item` ( KEY `item_flags` (`item_flags`), KEY `commented` (`commented`), KEY `verb` (`verb`), + KEY `obj_type` (`obj_type`), KEY `item_private` (`item_private`), KEY `llink` (`llink`), KEY `expires` (`expires`), @@ -712,38 +696,32 @@ CREATE TABLE IF NOT EXISTS `item` ( KEY `item_unpublished` (`item_unpublished`), KEY `item_delayed` (`item_delayed`), KEY `item_pending_remove` (`item_pending_remove`), - KEY `item_blocked` (`item_blocked`), - FULLTEXT KEY `title` (`title`), - FULLTEXT KEY `body` (`body`), - FULLTEXT KEY `allow_cid` (`allow_cid`), - FULLTEXT KEY `allow_gid` (`allow_gid`), - FULLTEXT KEY `deny_cid` (`deny_cid`), - FULLTEXT KEY `deny_gid` (`deny_gid`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; + KEY `item_blocked` (`item_blocked`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `item_id` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `iid` int(11) NOT NULL DEFAULT 0 , `uid` int(11) NOT NULL DEFAULT 0 , - `sid` char(255) NOT NULL DEFAULT '', - `service` char(255) NOT NULL DEFAULT '', + `sid` char(191) NOT NULL DEFAULT '', + `service` char(191) NOT NULL DEFAULT '', PRIMARY KEY (`id`), KEY `uid` (`uid`), KEY `sid` (`sid`), KEY `service` (`service`), KEY `iid` (`iid`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `likes` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `channel_id` int(10) unsigned NOT NULL DEFAULT 0 , - `liker` char(128) NOT NULL DEFAULT '', - `likee` char(128) NOT NULL DEFAULT '', + `liker` char(191) NOT NULL DEFAULT '', + `likee` char(191) NOT NULL DEFAULT '', `iid` int(11) unsigned NOT NULL DEFAULT 0 , - `i_mid` char(255) NOT NULL DEFAULT '', - `verb` char(255) NOT NULL DEFAULT '', - `target_type` char(255) NOT NULL DEFAULT '', - `target_id` char(128) NOT NULL DEFAULT '', + `i_mid` char(191) NOT NULL DEFAULT '', + `verb` char(191) NOT NULL DEFAULT '', + `target_type` char(191) NOT NULL DEFAULT '', + `target_id` char(191) NOT NULL DEFAULT '', `target` mediumtext NOT NULL, PRIMARY KEY (`id`), KEY `liker` (`liker`), @@ -754,15 +732,15 @@ CREATE TABLE IF NOT EXISTS `likes` ( KEY `target_type` (`target_type`), KEY `channel_id` (`channel_id`), KEY `target_id` (`target_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `mail` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `convid` int(10) unsigned NOT NULL DEFAULT 0 , - `conv_guid` char(255) NOT NULL DEFAULT '', + `conv_guid` char(191) NOT NULL DEFAULT '', `mail_flags` int(10) unsigned NOT NULL DEFAULT 0 , - `from_xchan` char(255) NOT NULL DEFAULT '', - `to_xchan` char(255) NOT NULL DEFAULT '', + `from_xchan` char(191) NOT NULL DEFAULT '', + `to_xchan` char(191) NOT NULL DEFAULT '', `account_id` int(10) unsigned NOT NULL DEFAULT 0 , `channel_id` int(10) unsigned NOT NULL DEFAULT 0 , `mail_mimetype` char(64) NOT NULL DEFAULT 'text/bbcode', @@ -770,8 +748,8 @@ CREATE TABLE IF NOT EXISTS `mail` ( `body` mediumtext NOT NULL, `sig` text NOT NULL, `attach` mediumtext NOT NULL, - `mid` char(255) NOT NULL DEFAULT '', - `parent_mid` char(255) NOT NULL DEFAULT '', + `mid` char(191) NOT NULL DEFAULT '', + `parent_mid` char(191) NOT NULL DEFAULT '', `mail_deleted` tinyint(4) NOT NULL DEFAULT 0 , `mail_replied` tinyint(4) NOT NULL DEFAULT 0 , `mail_isreply` tinyint(4) NOT NULL DEFAULT 0 , @@ -799,13 +777,13 @@ CREATE TABLE IF NOT EXISTS `mail` ( KEY `mail_seen` (`mail_seen`), KEY `mail_recalled` (`mail_recalled`), KEY `mail_obscured` (`mail_obscured`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `menu` ( `menu_id` int(10) unsigned NOT NULL AUTO_INCREMENT, `menu_channel_id` int(10) unsigned NOT NULL DEFAULT 0 , - `menu_name` char(255) NOT NULL DEFAULT '', - `menu_desc` char(255) NOT NULL DEFAULT '', + `menu_name` char(191) NOT NULL DEFAULT '', + `menu_desc` char(191) NOT NULL DEFAULT '', `menu_flags` int(11) NOT NULL DEFAULT 0 , `menu_created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `menu_edited` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', @@ -815,12 +793,12 @@ CREATE TABLE IF NOT EXISTS `menu` ( KEY `menu_flags` (`menu_flags`), KEY `menu_created` (`menu_created`), KEY `menu_edited` (`menu_edited`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `menu_item` ( `mitem_id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `mitem_link` char(255) NOT NULL DEFAULT '', - `mitem_desc` char(255) NOT NULL DEFAULT '', + `mitem_link` char(191) NOT NULL DEFAULT '', + `mitem_desc` char(191) NOT NULL DEFAULT '', `mitem_flags` int(11) NOT NULL DEFAULT 0 , `allow_cid` mediumtext NOT NULL, `allow_gid` mediumtext NOT NULL, @@ -833,23 +811,23 @@ CREATE TABLE IF NOT EXISTS `menu_item` ( KEY `mitem_channel_id` (`mitem_channel_id`), KEY `mitem_menu_id` (`mitem_menu_id`), KEY `mitem_flags` (`mitem_flags`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `notify` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `hash` char(64) NOT NULL DEFAULT '', - `xname` char(255) NOT NULL DEFAULT '', - `url` char(255) NOT NULL DEFAULT '', - `photo` char(255) NOT NULL DEFAULT '', + `hash` char(191) NOT NULL DEFAULT '', + `xname` char(191) NOT NULL DEFAULT '', + `url` char(191) NOT NULL DEFAULT '', + `photo` char(191) NOT NULL DEFAULT '', `created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `msg` mediumtext NOT NULL, `aid` int(11) NOT NULL DEFAULT 0 , `uid` int(11) NOT NULL DEFAULT 0 , - `link` char(255) NOT NULL DEFAULT '', - `parent` char(255) NOT NULL DEFAULT '', + `link` char(191) NOT NULL DEFAULT '', + `parent` char(191) NOT NULL DEFAULT '', `seen` tinyint(1) NOT NULL DEFAULT 0 , `ntype` int(11) NOT NULL DEFAULT 0 , - `verb` char(255) NOT NULL DEFAULT '', + `verb` char(191) NOT NULL DEFAULT '', `otype` char(16) NOT NULL DEFAULT '', PRIMARY KEY (`id`), KEY `ntype` (`ntype`), @@ -861,18 +839,18 @@ CREATE TABLE IF NOT EXISTS `notify` ( KEY `link` (`link`), KEY `otype` (`otype`), KEY `aid` (`aid`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `obj` ( `obj_id` int(10) unsigned NOT NULL AUTO_INCREMENT, `obj_page` char(64) NOT NULL DEFAULT '', - `obj_verb` char(255) NOT NULL DEFAULT '', + `obj_verb` char(191) NOT NULL DEFAULT '', `obj_type` int(10) unsigned NOT NULL DEFAULT 0 , - `obj_obj` char(255) NOT NULL DEFAULT '', + `obj_obj` char(191) NOT NULL DEFAULT '', `obj_channel` int(10) unsigned NOT NULL DEFAULT 0 , - `obj_term` char(255) NOT NULL DEFAULT '', - `obj_url` char(255) NOT NULL DEFAULT '', - `obj_imgurl` char(255) NOT NULL DEFAULT '', + `obj_term` char(191) NOT NULL DEFAULT '', + `obj_url` char(191) NOT NULL DEFAULT '', + `obj_imgurl` char(191) NOT NULL DEFAULT '', `obj_created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `obj_edited` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `obj_quantity` int(11) NOT NULL DEFAULT 0 , @@ -892,14 +870,14 @@ CREATE TABLE IF NOT EXISTS `obj` ( KEY `obj_edited` (`obj_edited`), KEY `obj_quantity` (`obj_quantity`), KEY `obj_obj` (`obj_obj`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `outq` ( - `outq_hash` char(255) NOT NULL, + `outq_hash` char(191) NOT NULL, `outq_account` int(10) unsigned NOT NULL DEFAULT 0 , `outq_channel` int(10) unsigned NOT NULL DEFAULT 0 , `outq_driver` char(32) NOT NULL DEFAULT '', - `outq_posturl` char(255) NOT NULL DEFAULT '', + `outq_posturl` char(191) NOT NULL DEFAULT '', `outq_async` tinyint(1) NOT NULL DEFAULT 0 , `outq_delivered` tinyint(1) NOT NULL DEFAULT 0 , `outq_created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', @@ -918,31 +896,30 @@ CREATE TABLE IF NOT EXISTS `outq` ( KEY `outq_async` (`outq_async`), KEY `outq_delivered` (`outq_delivered`), KEY `outq_priority` (`outq_priority`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `pconfig` ( `id` int(11) NOT NULL AUTO_INCREMENT, `uid` int(11) NOT NULL DEFAULT 0 , - `cat` char(255) CHARACTER SET ascii NOT NULL DEFAULT '', - `k` char(255) CHARACTER SET ascii NOT NULL DEFAULT '', + `cat` char(191) NOT NULL DEFAULT '', + `k` char(191) NOT NULL DEFAULT '', `v` mediumtext NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `access` (`uid`,`cat`,`k`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; - +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `photo` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `aid` int(10) unsigned NOT NULL DEFAULT 0 , `uid` int(10) unsigned NOT NULL DEFAULT 0 , - `xchan` char(255) NOT NULL DEFAULT '', - `resource_id` char(255) NOT NULL DEFAULT '', + `xchan` char(191) NOT NULL DEFAULT '', + `resource_id` char(191) NOT NULL DEFAULT '', `created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `edited` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', - `title` char(255) NOT NULL DEFAULT '', + `title` char(191) NOT NULL DEFAULT '', `description` text NOT NULL, - `album` char(255) NOT NULL DEFAULT '', - `filename` char(255) NOT NULL DEFAULT '', + `album` char(191) NOT NULL DEFAULT '', + `filename` char(191) NOT NULL DEFAULT '', `mimetype` char(128) NOT NULL DEFAULT 'image/jpeg', `height` smallint(6) NOT NULL DEFAULT 0 , `width` smallint(6) NOT NULL DEFAULT 0 , @@ -974,7 +951,7 @@ CREATE TABLE IF NOT EXISTS `photo` ( KEY `is_nsfw` (`is_nsfw`), KEY `os_storage` (`os_storage`), KEY `photo_usage` (`photo_usage`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `poll` ( `poll_id` int(10) unsigned NOT NULL AUTO_INCREMENT, @@ -986,7 +963,7 @@ CREATE TABLE IF NOT EXISTS `poll` ( KEY `poll_channel` (`poll_channel`), KEY `poll_flags` (`poll_flags`), KEY `poll_votes` (`poll_votes`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `poll_elm` ( `pelm_id` int(10) unsigned NOT NULL AUTO_INCREMENT, @@ -997,62 +974,62 @@ CREATE TABLE IF NOT EXISTS `poll_elm` ( PRIMARY KEY (`pelm_id`), KEY `pelm_poll` (`pelm_poll`), KEY `pelm_result` (`pelm_result`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `profdef` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `field_name` char(255) NOT NULL DEFAULT '', + `field_name` char(191) NOT NULL DEFAULT '', `field_type` char(16) NOT NULL DEFAULT '', - `field_desc` char(255) NOT NULL DEFAULT '', - `field_help` char(255) NOT NULL DEFAULT '', + `field_desc` char(191) NOT NULL DEFAULT '', + `field_help` char(191) NOT NULL DEFAULT '', `field_inputs` mediumtext NOT NULL, PRIMARY KEY (`id`), KEY `field_name` (`field_name`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `profext` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `channel_id` int(10) unsigned NOT NULL DEFAULT 0 , - `hash` char(255) NOT NULL DEFAULT '', - `k` char(255) NOT NULL DEFAULT '', + `hash` char(191) NOT NULL DEFAULT '', + `k` char(191) NOT NULL DEFAULT '', `v` mediumtext NOT NULL, PRIMARY KEY (`id`), KEY `channel_id` (`channel_id`), KEY `hash` (`hash`), KEY `k` (`k`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `profile` ( `id` int(11) NOT NULL AUTO_INCREMENT, `profile_guid` char(64) NOT NULL DEFAULT '', `aid` int(10) unsigned NOT NULL DEFAULT 0 , `uid` int(11) NOT NULL DEFAULT 0 , - `profile_name` char(255) NOT NULL DEFAULT '', + `profile_name` char(191) NOT NULL DEFAULT '', `is_default` tinyint(1) NOT NULL DEFAULT 0 , `hide_friends` tinyint(1) NOT NULL DEFAULT 0 , - `fullname` char(255) NOT NULL DEFAULT '', - `pdesc` char(255) NOT NULL DEFAULT '', + `fullname` char(191) NOT NULL DEFAULT '', + `pdesc` char(191) NOT NULL DEFAULT '', `chandesc` text NOT NULL, `dob` char(32) NOT NULL DEFAULT '0000-00-00', - `dob_tz` char(255) NOT NULL DEFAULT 'UTC', - `address` char(255) NOT NULL DEFAULT '', - `locality` char(255) NOT NULL DEFAULT '', - `region` char(255) NOT NULL DEFAULT '', + `dob_tz` char(191) NOT NULL DEFAULT 'UTC', + `address` char(191) NOT NULL DEFAULT '', + `locality` char(191) NOT NULL DEFAULT '', + `region` char(191) NOT NULL DEFAULT '', `postal_code` char(32) NOT NULL DEFAULT '', - `country_name` char(255) NOT NULL DEFAULT '', - `hometown` char(255) NOT NULL DEFAULT '', + `country_name` char(191) NOT NULL DEFAULT '', + `hometown` char(191) NOT NULL DEFAULT '', `gender` char(32) NOT NULL DEFAULT '', - `marital` char(255) NOT NULL DEFAULT '', + `marital` char(191) NOT NULL DEFAULT '', `partner` text NOT NULL, `howlong` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', - `sexual` char(255) NOT NULL DEFAULT '', - `politic` char(255) NOT NULL DEFAULT '', - `religion` char(255) NOT NULL DEFAULT '', + `sexual` char(191) NOT NULL DEFAULT '', + `politic` char(191) NOT NULL DEFAULT '', + `religion` char(191) NOT NULL DEFAULT '', `keywords` text NOT NULL, `likes` text NOT NULL, `dislikes` text NOT NULL, `about` text NOT NULL, - `summary` char(255) NOT NULL DEFAULT '', + `summary` char(191) NOT NULL DEFAULT '', `music` text NOT NULL, `book` text NOT NULL, `tv` text NOT NULL, @@ -1063,9 +1040,9 @@ CREATE TABLE IF NOT EXISTS `profile` ( `education` text NOT NULL, `contact` text NOT NULL, `channels` text NOT NULL, - `homepage` char(255) NOT NULL DEFAULT '', - `photo` char(255) NOT NULL DEFAULT '', - `thumb` char(255) NOT NULL DEFAULT '', + `homepage` char(191) NOT NULL DEFAULT '', + `photo` char(191) NOT NULL DEFAULT '', + `thumb` char(191) NOT NULL DEFAULT '', `publish` tinyint(1) NOT NULL DEFAULT 0 , `profile_vcard` text NOT NULL, PRIMARY KEY (`id`), @@ -1083,14 +1060,14 @@ CREATE TABLE IF NOT EXISTS `profile` ( KEY `postal_code` (`postal_code`), KEY `country_name` (`country_name`), KEY `profile_guid` (`profile_guid`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `profile_check` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `uid` int(10) unsigned NOT NULL DEFAULT 0 , `cid` int(10) unsigned NOT NULL DEFAULT 0 , - `dfrn_id` char(255) NOT NULL DEFAULT '', - `sec` char(255) NOT NULL DEFAULT '', + `dfrn_id` char(191) NOT NULL DEFAULT '', + `sec` char(191) NOT NULL DEFAULT '', `expire` int(11) NOT NULL DEFAULT 0 , PRIMARY KEY (`id`), KEY `uid` (`uid`), @@ -1098,41 +1075,41 @@ CREATE TABLE IF NOT EXISTS `profile_check` ( KEY `dfrn_id` (`dfrn_id`), KEY `sec` (`sec`), KEY `expire` (`expire`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `register` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `hash` char(255) NOT NULL DEFAULT '', + `hash` char(191) NOT NULL DEFAULT '', `created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `uid` int(10) unsigned NOT NULL DEFAULT 0 , - `password` char(255) NOT NULL DEFAULT '', + `password` char(191) NOT NULL DEFAULT '', `lang` char(16) NOT NULL DEFAULT '', PRIMARY KEY (`id`), KEY `hash` (`hash`), KEY `created` (`created`), KEY `uid` (`uid`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `session` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, - `sid` char(255) NOT NULL DEFAULT '', + `sid` char(191) NOT NULL DEFAULT '', `sess_data` text NOT NULL, `expire` bigint(20) unsigned NOT NULL DEFAULT 0 , PRIMARY KEY (`id`), KEY `sid` (`sid`), KEY `expire` (`expire`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `shares` ( `share_id` int(10) unsigned NOT NULL AUTO_INCREMENT, `share_type` int(11) NOT NULL DEFAULT 0 , `share_target` int(10) unsigned NOT NULL DEFAULT 0 , - `share_xchan` char(255) NOT NULL DEFAULT '', + `share_xchan` char(191) NOT NULL DEFAULT '', PRIMARY KEY (`share_id`), KEY `share_type` (`share_type`), KEY `share_target` (`share_target`), KEY `share_xchan` (`share_xchan`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `sign` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, @@ -1140,28 +1117,28 @@ CREATE TABLE IF NOT EXISTS `sign` ( `retract_iid` int(10) unsigned NOT NULL DEFAULT 0 , `signed_text` mediumtext NOT NULL, `signature` text NOT NULL, - `signer` char(255) NOT NULL DEFAULT '', + `signer` char(191) NOT NULL DEFAULT '', PRIMARY KEY (`id`), KEY `iid` (`iid`), KEY `retract_iid` (`retract_iid`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `site` ( - `site_url` char(255) NOT NULL, + `site_url` char(191) NOT NULL, `site_access` int(11) NOT NULL DEFAULT 0 , `site_flags` int(11) NOT NULL DEFAULT 0 , `site_update` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `site_pull` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `site_sync` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', - `site_directory` char(255) NOT NULL DEFAULT '', + `site_directory` char(191) NOT NULL DEFAULT '', `site_register` int(11) NOT NULL DEFAULT 0 , - `site_sellpage` char(255) NOT NULL DEFAULT '', - `site_location` char(255) NOT NULL DEFAULT '', - `site_realm` char(255) NOT NULL DEFAULT '', + `site_sellpage` char(191) NOT NULL DEFAULT '', + `site_location` char(191) NOT NULL DEFAULT '', + `site_realm` char(191) NOT NULL DEFAULT '', `site_valid` smallint NOT NULL DEFAULT 0 , `site_dead` smallint NOT NULL DEFAULT 0 , `site_type` smallint NOT NULL DEFAULT 0 , - `site_project` char(255) NOT NULL DEFAULT '', + `site_project` char(191) NOT NULL DEFAULT '', `site_version` varchar(32) NOT NULL DEFAULT '', `site_crypto` text NOT NULL, PRIMARY KEY (`site_url`), @@ -1177,29 +1154,29 @@ CREATE TABLE IF NOT EXISTS `site` ( KEY `site_dead` (`site_dead`), KEY `site_type` (`site_type`), KEY `site_project` (`site_project`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `source` ( `src_id` int(10) unsigned NOT NULL AUTO_INCREMENT, `src_channel_id` int(10) unsigned NOT NULL DEFAULT 0 , - `src_channel_xchan` char(255) NOT NULL DEFAULT '', - `src_xchan` char(255) NOT NULL DEFAULT '', + `src_channel_xchan` char(191) NOT NULL DEFAULT '', + `src_xchan` char(191) NOT NULL DEFAULT '', `src_patt` mediumtext NOT NULL, `src_tag` mediumtext NOT NULL, PRIMARY KEY (`src_id`), KEY `src_channel_id` (`src_channel_id`), KEY `src_channel_xchan` (`src_channel_xchan`), KEY `src_xchan` (`src_xchan`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `sys_perms` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `cat` char(255) NOT NULL DEFAULT '', - `k` char(255) NOT NULL DEFAULT '', + `cat` char(191) NOT NULL DEFAULT '', + `k` char(191) NOT NULL DEFAULT '', `v` mediumtext NOT NULL, `public_perm` tinyint(1) unsigned NOT NULL DEFAULT 0 , PRIMARY KEY (`id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `term` ( `tid` int(10) unsigned NOT NULL AUTO_INCREMENT, @@ -1208,11 +1185,11 @@ CREATE TABLE IF NOT EXISTS `term` ( `oid` int(10) unsigned NOT NULL DEFAULT 0 , `otype` tinyint(3) unsigned NOT NULL DEFAULT 0 , `ttype` tinyint(3) unsigned NOT NULL DEFAULT 0 , - `term` char(255) NOT NULL DEFAULT '', - `url` char(255) NOT NULL DEFAULT '', - `imgurl` char(255) NOT NULL DEFAULT '', - `term_hash` char(255) NOT NULL DEFAULT '', - `parent_hash` char(255) NOT NULL DEFAULT '', + `term` char(191) NOT NULL DEFAULT '', + `url` char(191) NOT NULL DEFAULT '', + `imgurl` char(191) NOT NULL DEFAULT '', + `term_hash` char(191) NOT NULL DEFAULT '', + `parent_hash` char(191) NOT NULL DEFAULT '', PRIMARY KEY (`tid`), KEY `oid` (`oid`), KEY `otype` (`otype`), @@ -1223,12 +1200,12 @@ CREATE TABLE IF NOT EXISTS `term` ( KEY `imgurl` (`imgurl`), KEY `term_hash` (`term_hash`), KEY `parent_hash` (`parent_hash`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `tokens` ( - `id` varchar(40) NOT NULL DEFAULT '', + `id` varchar(191) NOT NULL DEFAULT '', `secret` text NOT NULL, - `client_id` varchar(20) NOT NULL DEFAULT '', + `client_id` varchar(191) NOT NULL DEFAULT '', `expires` bigint(20) unsigned NOT NULL DEFAULT 0 , `auth_scope` varchar(512) NOT NULL DEFAULT '', `uid` int(11) NOT NULL DEFAULT 0 , @@ -1236,16 +1213,16 @@ CREATE TABLE IF NOT EXISTS `tokens` ( KEY `client_id` (`client_id`), KEY `expires` (`expires`), KEY `uid` (`uid`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `updates` ( `ud_id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `ud_hash` char(128) NOT NULL DEFAULT '', - `ud_guid` char(255) NOT NULL DEFAULT '', + `ud_hash` char(191) NOT NULL DEFAULT '', + `ud_guid` char(191) NOT NULL DEFAULT '', `ud_date` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `ud_last` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `ud_flags` int(11) NOT NULL DEFAULT 0 , - `ud_addr` char(255) NOT NULL DEFAULT '', + `ud_addr` char(191) NOT NULL DEFAULT '', PRIMARY KEY (`ud_id`), KEY `ud_date` (`ud_date`), KEY `ud_guid` (`ud_guid`), @@ -1253,14 +1230,14 @@ CREATE TABLE IF NOT EXISTS `updates` ( KEY `ud_flags` (`ud_flags`), KEY `ud_addr` (`ud_addr`), KEY `ud_last` (`ud_last`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `verify` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `channel` int(10) unsigned NOT NULL DEFAULT 0 , `vtype` char(32) NOT NULL DEFAULT '', - `token` char(255) NOT NULL DEFAULT '', - `meta` char(255) NOT NULL DEFAULT '', + `token` char(191) NOT NULL DEFAULT '', + `meta` char(191) NOT NULL DEFAULT '', `created` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', PRIMARY KEY (`id`), KEY `channel` (`channel`), @@ -1268,37 +1245,37 @@ CREATE TABLE IF NOT EXISTS `verify` ( KEY `token` (`token`), KEY `meta` (`meta`), KEY `created` (`created`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `vote` ( `vote_id` int(10) unsigned NOT NULL AUTO_INCREMENT, `vote_poll` int(11) NOT NULL DEFAULT 0 , `vote_element` int(11) NOT NULL DEFAULT 0 , `vote_result` text NOT NULL, - `vote_xchan` char(255) NOT NULL DEFAULT '', + `vote_xchan` char(191) NOT NULL DEFAULT '', PRIMARY KEY (`vote_id`), UNIQUE KEY `vote_vote` (`vote_poll`,`vote_element`,`vote_xchan`), KEY `vote_poll` (`vote_poll`), KEY `vote_element` (`vote_element`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `xchan` ( - `xchan_hash` char(255) NOT NULL, - `xchan_guid` char(255) NOT NULL DEFAULT '', + `xchan_hash` char(191) NOT NULL, + `xchan_guid` char(191) NOT NULL DEFAULT '', `xchan_guid_sig` text NOT NULL, `xchan_pubkey` text NOT NULL, `xchan_photo_mimetype` char(32) NOT NULL DEFAULT 'image/jpeg', - `xchan_photo_l` char(255) NOT NULL DEFAULT '', - `xchan_photo_m` char(255) NOT NULL DEFAULT '', - `xchan_photo_s` char(255) NOT NULL DEFAULT '', - `xchan_addr` char(255) NOT NULL DEFAULT '', - `xchan_url` char(255) NOT NULL DEFAULT '', - `xchan_connurl` char(255) NOT NULL DEFAULT '', - `xchan_follow` char(255) NOT NULL DEFAULT '', - `xchan_connpage` char(255) NOT NULL DEFAULT '', - `xchan_name` char(255) NOT NULL DEFAULT '', - `xchan_network` char(255) NOT NULL DEFAULT '', - `xchan_instance_url` char(255) NOT NULL DEFAULT '', + `xchan_photo_l` char(191) NOT NULL DEFAULT '', + `xchan_photo_m` char(191) NOT NULL DEFAULT '', + `xchan_photo_s` char(191) NOT NULL DEFAULT '', + `xchan_addr` char(191) NOT NULL DEFAULT '', + `xchan_url` char(191) NOT NULL DEFAULT '', + `xchan_connurl` char(191) NOT NULL DEFAULT '', + `xchan_follow` char(191) NOT NULL DEFAULT '', + `xchan_connpage` char(191) NOT NULL DEFAULT '', + `xchan_name` char(191) NOT NULL DEFAULT '', + `xchan_network` char(191) NOT NULL DEFAULT '', + `xchan_instance_url` char(191) NOT NULL DEFAULT '', `xchan_flags` int(10) unsigned NOT NULL DEFAULT 0 , `xchan_photo_date` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', `xchan_name_date` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', @@ -1326,46 +1303,46 @@ CREATE TABLE IF NOT EXISTS `xchan` ( KEY `xchan_system` (`xchan_system`), KEY `xchan_pubforum` (`xchan_pubforum`), KEY `xchan_deleted` (`xchan_deleted`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `xchat` ( `xchat_id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `xchat_url` char(255) NOT NULL DEFAULT '', - `xchat_desc` char(255) NOT NULL DEFAULT '', - `xchat_xchan` char(255) NOT NULL DEFAULT '', + `xchat_url` char(191) NOT NULL DEFAULT '', + `xchat_desc` char(191) NOT NULL DEFAULT '', + `xchat_xchan` char(191) NOT NULL DEFAULT '', `xchat_edited` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', PRIMARY KEY (`xchat_id`), KEY `xchat_url` (`xchat_url`), KEY `xchat_desc` (`xchat_desc`), KEY `xchat_xchan` (`xchat_xchan`), KEY `xchat_edited` (`xchat_edited`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `xconfig` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `xchan` char(255) NOT NULL DEFAULT '', - `cat` char(255) NOT NULL DEFAULT '', - `k` char(255) NOT NULL DEFAULT '', + `xchan` char(191) NOT NULL DEFAULT '', + `cat` char(191) NOT NULL DEFAULT '', + `k` char(191) NOT NULL DEFAULT '', `v` mediumtext NOT NULL, PRIMARY KEY (`id`), KEY `xchan` (`xchan`), KEY `cat` (`cat`), KEY `k` (`k`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `xign` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `uid` int(11) NOT NULL DEFAULT 0 , - `xchan` char(255) NOT NULL DEFAULT '', + `xchan` char(191) NOT NULL DEFAULT '', PRIMARY KEY (`id`), KEY `uid` (`uid`), KEY `xchan` (`xchan`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `xlink` ( `xlink_id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `xlink_xchan` char(255) NOT NULL DEFAULT '', - `xlink_link` char(255) NOT NULL DEFAULT '', + `xlink_xchan` char(191) NOT NULL DEFAULT '', + `xlink_link` char(191) NOT NULL DEFAULT '', `xlink_rating` int(11) NOT NULL DEFAULT 0 , `xlink_rating_text` text NOT NULL, `xlink_updated` datetime NOT NULL DEFAULT '0001-01-01 00:00:00', @@ -1377,7 +1354,7 @@ CREATE TABLE IF NOT EXISTS `xlink` ( KEY `xlink_updated` (`xlink_updated`), KEY `xlink_rating` (`xlink_rating`), KEY `xlink_static` (`xlink_static`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `xperm` ( `xp_id` int(10) unsigned NOT NULL AUTO_INCREMENT, @@ -1388,24 +1365,24 @@ CREATE TABLE IF NOT EXISTS `xperm` ( KEY `xp_client` (`xp_client`), KEY `xp_channel` (`xp_channel`), KEY `xp_perm` (`xp_perm`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `xprof` ( - `xprof_hash` char(255) NOT NULL, + `xprof_hash` char(191) NOT NULL, `xprof_age` tinyint(3) unsigned NOT NULL DEFAULT 0 , - `xprof_desc` char(255) NOT NULL DEFAULT '', + `xprof_desc` char(191) NOT NULL DEFAULT '', `xprof_dob` char(12) NOT NULL DEFAULT '', - `xprof_gender` char(255) NOT NULL DEFAULT '', - `xprof_marital` char(255) NOT NULL DEFAULT '', - `xprof_sexual` char(255) NOT NULL DEFAULT '', - `xprof_locale` char(255) NOT NULL DEFAULT '', - `xprof_region` char(255) NOT NULL DEFAULT '', + `xprof_gender` char(191) NOT NULL DEFAULT '', + `xprof_marital` char(191) NOT NULL DEFAULT '', + `xprof_sexual` char(191) NOT NULL DEFAULT '', + `xprof_locale` char(191) NOT NULL DEFAULT '', + `xprof_region` char(191) NOT NULL DEFAULT '', `xprof_postcode` char(32) NOT NULL DEFAULT '', - `xprof_country` char(255) NOT NULL DEFAULT '', + `xprof_country` char(191) NOT NULL DEFAULT '', `xprof_keywords` text NOT NULL, `xprof_about` text NOT NULL, - `xprof_homepage` char(255) NOT NULL DEFAULT '', - `xprof_hometown` char(255) NOT NULL DEFAULT '', + `xprof_homepage` char(191) NOT NULL DEFAULT '', + `xprof_hometown` char(191) NOT NULL DEFAULT '', PRIMARY KEY (`xprof_hash`), KEY `xprof_desc` (`xprof_desc`), KEY `xprof_dob` (`xprof_dob`), @@ -1418,15 +1395,186 @@ CREATE TABLE IF NOT EXISTS `xprof` ( KEY `xprof_country` (`xprof_country`), KEY `xprof_age` (`xprof_age`), KEY `xprof_hometown` (`xprof_hometown`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `xtag` ( `xtag_id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `xtag_hash` char(255) NOT NULL DEFAULT '', - `xtag_term` char(255) NOT NULL DEFAULT '', + `xtag_hash` char(191) NOT NULL DEFAULT '', + `xtag_term` char(191) NOT NULL DEFAULT '', `xtag_flags` int(11) NOT NULL DEFAULT 0 , PRIMARY KEY (`xtag_id`), KEY `xtag_term` (`xtag_term`), KEY `xtag_hash` (`xtag_hash`), KEY `xtag_flags` (`xtag_flags`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE if not exists addressbooks ( + id INT(11) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, + principaluri VARBINARY(255), + displayname VARCHAR(255), + uri VARBINARY(200), + description TEXT, + synctoken INT(11) UNSIGNED NOT NULL DEFAULT '1', + UNIQUE(principaluri(100), uri(100)) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE if not exists cards ( + id INT(11) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, + addressbookid INT(11) UNSIGNED NOT NULL, + carddata MEDIUMBLOB, + uri VARBINARY(200), + lastmodified INT(11) UNSIGNED, + etag VARBINARY(32), + size INT(11) UNSIGNED NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE if not exists addressbookchanges ( + id INT(11) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, + uri VARBINARY(200) NOT NULL, + synctoken INT(11) UNSIGNED NOT NULL, + addressbookid INT(11) UNSIGNED NOT NULL, + operation TINYINT(1) NOT NULL, + INDEX addressbookid_synctoken (addressbookid, synctoken) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE if not exists calendarobjects ( + id INT(11) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, + calendardata MEDIUMBLOB, + uri VARBINARY(200), + calendarid INTEGER UNSIGNED NOT NULL, + lastmodified INT(11) UNSIGNED, + etag VARBINARY(32), + size INT(11) UNSIGNED NOT NULL, + componenttype VARBINARY(8), + firstoccurence INT(11) UNSIGNED, + lastoccurence INT(11) UNSIGNED, + uid VARBINARY(200), + UNIQUE(calendarid, uri), + INDEX calendarid_time (calendarid, firstoccurence) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE if not exists calendars ( + id INTEGER UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, + synctoken INTEGER UNSIGNED NOT NULL DEFAULT '1', + components VARBINARY(21) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE if not exists calendarinstances ( + id INTEGER UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, + calendarid INTEGER UNSIGNED NOT NULL, + principaluri VARBINARY(100), + access TINYINT(1) NOT NULL DEFAULT '1' COMMENT '1 = owner, 2 = read, 3 = readwrite', + displayname VARCHAR(100), + uri VARBINARY(200), + description TEXT, + calendarorder INT(11) UNSIGNED NOT NULL DEFAULT '0', + calendarcolor VARBINARY(10), + timezone TEXT, + transparent TINYINT(1) NOT NULL DEFAULT '0', + share_href VARBINARY(100), + share_displayname VARCHAR(100), + share_invitestatus TINYINT(1) NOT NULL DEFAULT '2' COMMENT '1 = noresponse, 2 = accepted, 3 = declined, 4 = invalid', + UNIQUE(principaluri, uri), + UNIQUE(calendarid, principaluri), + UNIQUE(calendarid, share_href) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE if not exists calendarchanges ( + id INT(11) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, + uri VARBINARY(200) NOT NULL, + synctoken INT(11) UNSIGNED NOT NULL, + calendarid INT(11) UNSIGNED NOT NULL, + operation TINYINT(1) NOT NULL, + INDEX calendarid_synctoken (calendarid, synctoken) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE if not exists calendarsubscriptions ( + id INT(11) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, + uri VARBINARY(200) NOT NULL, + principaluri VARBINARY(100) NOT NULL, + source TEXT, + displayname VARCHAR(100), + refreshrate VARCHAR(10), + calendarorder INT(11) UNSIGNED NOT NULL DEFAULT '0', + calendarcolor VARBINARY(10), + striptodos TINYINT(1) NULL, + stripalarms TINYINT(1) NULL, + stripattachments TINYINT(1) NULL, + lastmodified INT(11) UNSIGNED, + UNIQUE(principaluri, uri) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE if not exists schedulingobjects ( + id INT(11) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, + principaluri VARBINARY(255), + calendardata MEDIUMBLOB, + uri VARBINARY(200), + lastmodified INT(11) UNSIGNED, + etag VARBINARY(32), + size INT(11) UNSIGNED NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE if not exists locks ( + id INTEGER UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, + owner VARCHAR(100), + timeout INTEGER UNSIGNED, + created INTEGER, + token VARBINARY(100), + scope TINYINT, + depth TINYINT, + uri VARBINARY(1000), + INDEX(token), + INDEX(uri(100)) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE if not exists principals ( + id INTEGER UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, + uri VARBINARY(200) NOT NULL, + email VARBINARY(80), + displayname VARCHAR(80), + UNIQUE(uri) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE if not exists groupmembers ( + id INTEGER UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, + principal_id INTEGER UNSIGNED NOT NULL, + member_id INTEGER UNSIGNED NOT NULL, + UNIQUE(principal_id, member_id) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE if not exists propertystorage ( + id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, + path VARBINARY(1024) NOT NULL, + name VARBINARY(100) NOT NULL, + valuetype INT UNSIGNED, + value MEDIUMBLOB +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE UNIQUE INDEX path_property ON propertystorage (path(600), name(100)); + +CREATE TABLE if not exists users ( + id INTEGER UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, + username VARBINARY(50), + digesta1 VARBINARY(32), + UNIQUE(username) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE if not exists calendarinstances ( + id INTEGER UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, + calendarid INTEGER UNSIGNED NOT NULL, + principaluri VARBINARY(100), + access TINYINT(1) NOT NULL DEFAULT '1' COMMENT '1 = owner, 2 = read, 3 = readwrite', + displayname VARCHAR(100), + uri VARBINARY(200), + description TEXT, + calendarorder INT(11) UNSIGNED NOT NULL DEFAULT '0', + calendarcolor VARBINARY(10), + timezone TEXT, + transparent TINYINT(1) NOT NULL DEFAULT '0', + share_href VARBINARY(100), + share_displayname VARCHAR(100), + share_invitestatus TINYINT(1) NOT NULL DEFAULT '2' COMMENT '1 = noresponse, 2 = accepted, 3 = declined, 4 = invalid', + UNIQUE(principaluri, uri), + UNIQUE(calendarid, principaluri), + UNIQUE(calendarid, share_href) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; diff --git a/install/schema_postgres.sql b/install/schema_postgres.sql index e171d9baf..197cbb4d1 100644 --- a/install/schema_postgres.sql +++ b/install/schema_postgres.sql @@ -16,23 +16,23 @@ CREATE TABLE "abook" ( "abook_account" bigint NOT NULL, "abook_channel" bigint NOT NULL, "abook_xchan" text NOT NULL DEFAULT '', - "abook_my_perms" bigint NOT NULL DEFAULT 0, - "abook_their_perms" bigint NOT NULL DEFAULT 0, - "abook_closeness" numeric(3) NOT NULL DEFAULT 99, + "abook_my_perms" bigint NOT NULL, + "abook_their_perms" bigint NOT NULL, + "abook_closeness" numeric(3) NOT NULL DEFAULT '99', "abook_created" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00', "abook_updated" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00', "abook_connected" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00', "abook_dob" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00', - "abook_flags" bigint NOT NULL DEFAULT 0 , - "abook_blocked" smallint NOT NULL DEFAULT 0 , - "abook_ignored" smallint NOT NULL DEFAULT 0 , - "abook_hidden" smallint NOT NULL DEFAULT 0 , - "abook_archived" smallint NOT NULL DEFAULT 0 , - "abook_pending" smallint NOT NULL DEFAULT 0 , - "abook_unconnected" smallint NOT NULL DEFAULT 0 , - "abook_self" smallint NOT NULL DEFAULT 0 , - "abook_feed" smallint NOT NULL DEFAULT 0 , - "abook_not_here" smallint NOT NULL DEFAULT 0 , + "abook_flags" bigint NOT NULL DEFAULT '0', + "abook_blocked" smallint NOT NULL DEFAULT '0', + "abook_ignored" smallint NOT NULL DEFAULT '0', + "abook_hidden" smallint NOT NULL DEFAULT '0', + "abook_archived" smallint NOT NULL DEFAULT '0', + "abook_pending" smallint NOT NULL DEFAULT '0', + "abook_unconnected" smallint NOT NULL DEFAULT '0', + "abook_self" smallint NOT NULL DEFAULT '0', + "abook_feed" smallint NOT NULL DEFAULT '0', + "abook_not_here" smallint NOT NULL DEFAULT '0', "abook_profile" varchar(64) NOT NULL DEFAULT '', "abook_incl" TEXT NOT NULL DEFAULT '', "abook_excl" TEXT NOT NULL DEFAULT '', @@ -42,8 +42,8 @@ CREATE TABLE "abook" ( create index "abook_account" on abook ("abook_account"); create index "abook_channel" on abook ("abook_channel"); create index "abook_xchan" on abook ("abook_xchan"); - create index "abook_my_perms" on abook ("abook_my_perms"); - create index "abook_their_perms" on abook ("abook_their_perms"); + create index "abook_my_perms" on abook ("abook_my_perms"); + create index "abook_their_perms" on abook ("abook_their_perms"); create index "abook_closeness" on abook ("abook_closeness"); create index "abook_created" on abook ("abook_created"); create index "abook_updated" on abook ("abook_updated"); @@ -64,8 +64,8 @@ CREATE TABLE "abook" ( CREATE TABLE "account" ( "account_id" serial NOT NULL, - "account_parent" bigint NOT NULL DEFAULT 0 , - "account_default_channel" bigint NOT NULL DEFAULT 0 , + "account_parent" bigint NOT NULL DEFAULT '0', + "account_default_channel" bigint NOT NULL DEFAULT '0', "account_salt" varchar(32) NOT NULL DEFAULT '', "account_password" text NOT NULL DEFAULT '', "account_email" text NOT NULL DEFAULT '', @@ -261,26 +261,8 @@ CREATE TABLE "channel" ( "channel_allow_gid" text , "channel_deny_cid" text , "channel_deny_gid" text , - "channel_r_stream" bigint NOT NULL DEFAULT 0, - "channel_r_profile" bigint NOT NULL DEFAULT 0, - "channel_r_photos" bigint NOT NULL DEFAULT 0, - "channel_r_abook" bigint NOT NULL DEFAULT 0, - "channel_w_stream" bigint NOT NULL DEFAULT 0, - "channel_w_wall" bigint NOT NULL DEFAULT 0, - "channel_w_tagwall" bigint NOT NULL DEFAULT 0, - "channel_w_comment" bigint NOT NULL DEFAULT 0, - "channel_w_mail" bigint NOT NULL DEFAULT 0, - "channel_w_photos" bigint NOT NULL DEFAULT 0, - "channel_w_chat" bigint NOT NULL DEFAULT 0, - "channel_a_delegate" bigint NOT NULL DEFAULT 0 , - "channel_r_storage" bigint NOT NULL DEFAULT 0, - "channel_w_storage" bigint NOT NULL DEFAULT 0, - "channel_r_pages" bigint NOT NULL DEFAULT 0, - "channel_w_pages" bigint NOT NULL DEFAULT 0, - "channel_a_republish" bigint NOT NULL DEFAULT 0, - "channel_w_like" bigint NOT NULL DEFAULT 0, - "channel_removed" smallint NOT NULL DEFAULT 0 , - "channel_system" smallint NOT NULL DEFAULT 0 , + "channel_removed" smallint NOT NULL DEFAULT '0', + "channel_system" smallint NOT NULL DEFAULT '0', "channel_moved" text NOT NULL DEFAULT '', "channel_password" varchar(255) NOT NULL, "channel_salt" varchar(255) NOT NULL, @@ -298,28 +280,10 @@ create index "channel_pageflags" on channel ("channel_pageflags"); create index "channel_max_anon_mail" on channel ("channel_max_anon_mail"); create index "channel_max_friend_req" on channel ("channel_max_friend_req"); create index "channel_default_gid" on channel ("channel_default_group"); -create index "channel_r_stream" on channel ("channel_r_stream"); -create index "channel_r_profile" on channel ("channel_r_profile"); -create index "channel_r_photos" on channel ("channel_r_photos"); -create index "channel_r_abook" on channel ("channel_r_abook"); -create index "channel_w_stream" on channel ("channel_w_stream"); -create index "channel_w_wall" on channel ("channel_w_wall"); -create index "channel_w_tagwall" on channel ("channel_w_tagwall"); -create index "channel_w_comment" on channel ("channel_w_comment"); -create index "channel_w_mail" on channel ("channel_w_mail"); -create index "channel_w_photos" on channel ("channel_w_photos"); -create index "channel_w_chat" on channel ("channel_w_chat"); create index "channel_guid" on channel ("channel_guid"); create index "channel_hash" on channel ("channel_hash"); create index "channel_expire_days" on channel ("channel_expire_days"); -create index "channel_a_delegate" on channel ("channel_a_delegate"); -create index "channel_r_storage" on channel ("channel_r_storage"); -create index "channel_w_storage" on channel ("channel_w_storage"); -create index "channel_r_pages" on channel ("channel_r_pages"); -create index "channel_w_pages" on channel ("channel_w_pages"); create index "channel_deleted" on channel ("channel_deleted"); -create index "channel_a_republish" on channel ("channel_a_republish"); -create index "channel_w_like" on channel ("channel_w_like"); create index "channel_dirdate" on channel ("channel_dirdate"); create index "channel_lastpost" on channel ("channel_lastpost"); create index "channel_removed" on channel ("channel_removed"); @@ -403,7 +367,7 @@ create index "conv_updated_idx" on conv ("updated"); CREATE TABLE IF NOT EXISTS "dreport" ( "dreport_id" serial NOT NULL, - "dreport_channel" int NOT NULL DEFAULT 0 , + "dreport_channel" int NOT NULL DEFAULT '0', "dreport_mid" varchar(255) NOT NULL DEFAULT '', "dreport_site" varchar(255) NOT NULL DEFAULT '', "dreport_recip" varchar(255) NOT NULL DEFAULT '', @@ -613,7 +577,6 @@ CREATE TABLE "item" ( "resource_type" varchar(16) NOT NULL DEFAULT '', "attach" text NOT NULL, "sig" text NOT NULL DEFAULT '', - "diaspora_meta" text NOT NULL DEFAULT '', "location" text NOT NULL DEFAULT '', "coord" text NOT NULL DEFAULT '', "public_policy" text NOT NULL DEFAULT '', @@ -668,6 +631,7 @@ create index "item_restrict" on item ("item_restrict"); create index "item_flags" on item ("item_flags"); create index "item_commented" on item ("commented"); create index "item_verb" on item ("verb"); +create index "item_obj_type" on item ("obj_type"); create index "item_private" on item ("item_private"); create index "item_llink" on item ("llink"); create index "item_expires" on item ("expires"); @@ -725,10 +689,10 @@ create index "itemid_service" on item_id ("service"); create index "itemid_iid" on item_id ("iid"); CREATE TABLE "likes" ( "id" serial NOT NULL, - "channel_id" bigint NOT NULL DEFAULT 0 , + "channel_id" bigint NOT NULL DEFAULT '0', "liker" varchar(128) NOT NULL DEFAULT '', "likee" varchar(128) NOT NULL DEFAULT '', - "iid" bigint NOT NULL DEFAULT 0 , + "iid" bigint NOT NULL DEFAULT '0', "i_mid" varchar(255) NOT NULL DEFAULT '', "verb" text NOT NULL DEFAULT '', "target_type" text NOT NULL DEFAULT '', @@ -751,9 +715,9 @@ CREATE TABLE "mail" ( "mail_flags" bigint NOT NULL DEFAULT 0 , "from_xchan" text NOT NULL DEFAULT '', "to_xchan" text NOT NULL DEFAULT '', - "account_id" bigint NOT NULL DEFAULT 0 , - "channel_id" bigint NOT NULL DEFAULT 0 , - "mail_mimetype" varchar(64) NOT NULL DEFAULT 'text/bbcode', + "account_id" bigint NOT NULL DEFAULT '0', + "channel_id" bigint NOT NULL DEFAULT '0', + "mail_mimetype" varchar(64) NOT NULL DEFAULT '0', "title" text NOT NULL, "body" text NOT NULL, "sig" text NOT NULL, @@ -1009,7 +973,7 @@ create index "profext_k" on profext ("k"); CREATE TABLE "profile" ( "id" serial NOT NULL, "profile_guid" varchar(64) NOT NULL DEFAULT '', - "aid" bigint NOT NULL DEFAULT 0 , + "aid" bigint NOT NULL DEFAULT '0', "uid" bigint NOT NULL, "profile_name" text NOT NULL, "is_default" numeric(1) NOT NULL DEFAULT 0 , @@ -1399,3 +1363,225 @@ CREATE TABLE "xtag" ( create index "xtag_term" on xtag ("xtag_term"); create index "xtag_hash" on xtag ("xtag_hash"); create index "xtag_flags" on xtag ("xtag_flags"); + +CREATE TABLE addressbooks ( + id SERIAL NOT NULL, + principaluri VARCHAR(255), + displayname VARCHAR(255), + uri VARCHAR(200), + description TEXT, + synctoken INTEGER NOT NULL DEFAULT 1 +); + +ALTER TABLE ONLY addressbooks + ADD CONSTRAINT addressbooks_pkey PRIMARY KEY (id); + +CREATE UNIQUE INDEX addressbooks_ukey + ON addressbooks USING btree (principaluri, uri); + +CREATE TABLE cards ( + id SERIAL NOT NULL, + addressbookid INTEGER NOT NULL, + carddata BYTEA, + uri VARCHAR(200), + lastmodified INTEGER, + etag VARCHAR(32), + size INTEGER NOT NULL +); + +ALTER TABLE ONLY cards + ADD CONSTRAINT cards_pkey PRIMARY KEY (id); + +CREATE UNIQUE INDEX cards_ukey + ON cards USING btree (addressbookid, uri); + +CREATE TABLE addressbookchanges ( + id SERIAL NOT NULL, + uri VARCHAR(200) NOT NULL, + synctoken INTEGER NOT NULL, + addressbookid INTEGER NOT NULL, + operation SMALLINT NOT NULL +); + +ALTER TABLE ONLY addressbookchanges + ADD CONSTRAINT addressbookchanges_pkey PRIMARY KEY (id); + +CREATE INDEX addressbookchanges_addressbookid_synctoken_ix + ON addressbookchanges USING btree (addressbookid, synctoken); + +CREATE TABLE calendarobjects ( + id SERIAL NOT NULL, + calendardata BYTEA, + uri VARCHAR(200), + calendarid INTEGER NOT NULL, + lastmodified INTEGER, + etag VARCHAR(32), + size INTEGER NOT NULL, + componenttype VARCHAR(8), + firstoccurence INTEGER, + lastoccurence INTEGER, + uid VARCHAR(200) +); + +ALTER TABLE ONLY calendarobjects + ADD CONSTRAINT calendarobjects_pkey PRIMARY KEY (id); + +CREATE UNIQUE INDEX calendarobjects_ukey + ON calendarobjects USING btree (calendarid, uri); + + +CREATE TABLE calendars ( + id SERIAL NOT NULL, + synctoken INTEGER NOT NULL DEFAULT 1, + components VARCHAR(21) +); + +ALTER TABLE ONLY calendars + ADD CONSTRAINT calendars_pkey PRIMARY KEY (id); + + +CREATE TABLE calendarinstances ( + id SERIAL NOT NULL, + calendarid INTEGER NOT NULL, + principaluri VARCHAR(100), + access SMALLINT NOT NULL DEFAULT '1', -- '1 = owner, 2 = read, 3 = readwrite' + displayname VARCHAR(100), + uri VARCHAR(200), + description TEXT, + calendarorder INTEGER NOT NULL DEFAULT 0, + calendarcolor VARCHAR(10), + timezone TEXT, + transparent SMALLINT NOT NULL DEFAULT '0', + share_href VARCHAR(100), + share_displayname VARCHAR(100), + share_invitestatus SMALLINT NOT NULL DEFAULT '2' -- '1 = noresponse, 2 = accepted, 3 = declined, 4 = invalid' +); + +ALTER TABLE ONLY calendarinstances + ADD CONSTRAINT calendarinstances_pkey PRIMARY KEY (id); + +CREATE UNIQUE INDEX calendarinstances_principaluri_uri + ON calendarinstances USING btree (principaluri, uri); + + +CREATE UNIQUE INDEX calendarinstances_principaluri_calendarid + ON calendarinstances USING btree (principaluri, calendarid); + +CREATE UNIQUE INDEX calendarinstances_principaluri_share_href + ON calendarinstances USING btree (principaluri, share_href); + +CREATE TABLE calendarsubscriptions ( + id SERIAL NOT NULL, + uri VARCHAR(200) NOT NULL, + principaluri VARCHAR(100) NOT NULL, + source TEXT, + displayname VARCHAR(100), + refreshrate VARCHAR(10), + calendarorder INTEGER NOT NULL DEFAULT 0, + calendarcolor VARCHAR(10), + striptodos SMALLINT NULL, + stripalarms SMALLINT NULL, + stripattachments SMALLINT NULL, + lastmodified INTEGER +); + +ALTER TABLE ONLY calendarsubscriptions + ADD CONSTRAINT calendarsubscriptions_pkey PRIMARY KEY (id); + +CREATE UNIQUE INDEX calendarsubscriptions_ukey + ON calendarsubscriptions USING btree (principaluri, uri); + +CREATE TABLE calendarchanges ( + id SERIAL NOT NULL, + uri VARCHAR(200) NOT NULL, + synctoken INTEGER NOT NULL, + calendarid INTEGER NOT NULL, + operation SMALLINT NOT NULL DEFAULT 0 +); + +ALTER TABLE ONLY calendarchanges + ADD CONSTRAINT calendarchanges_pkey PRIMARY KEY (id); + +CREATE INDEX calendarchanges_calendarid_synctoken_ix + ON calendarchanges USING btree (calendarid, synctoken); + +CREATE TABLE schedulingobjects ( + id SERIAL NOT NULL, + principaluri VARCHAR(255), + calendardata BYTEA, + uri VARCHAR(200), + lastmodified INTEGER, + etag VARCHAR(32), + size INTEGER NOT NULL +); + +CREATE TABLE locks ( + id SERIAL NOT NULL, + owner VARCHAR(100), + timeout INTEGER, + created INTEGER, + token VARCHAR(100), + scope SMALLINT, + depth SMALLINT, + uri TEXT +); + +ALTER TABLE ONLY locks + ADD CONSTRAINT locks_pkey PRIMARY KEY (id); + +CREATE INDEX locks_token_ix + ON locks USING btree (token); + +CREATE INDEX locks_uri_ix + ON locks USING btree (uri); + +CREATE TABLE principals ( + id SERIAL NOT NULL, + uri VARCHAR(200) NOT NULL, + email VARCHAR(80), + displayname VARCHAR(80) +); + +ALTER TABLE ONLY principals + ADD CONSTRAINT principals_pkey PRIMARY KEY (id); + +CREATE UNIQUE INDEX principals_ukey + ON principals USING btree (uri); + +CREATE TABLE groupmembers ( + id SERIAL NOT NULL, + principal_id INTEGER NOT NULL, + member_id INTEGER NOT NULL +); + +ALTER TABLE ONLY groupmembers + ADD CONSTRAINT groupmembers_pkey PRIMARY KEY (id); + +CREATE UNIQUE INDEX groupmembers_ukey + ON groupmembers USING btree (principal_id, member_id); + +CREATE TABLE propertystorage ( + id SERIAL NOT NULL, + path VARCHAR(1024) NOT NULL, + name VARCHAR(100) NOT NULL, + valuetype INT, + value BYTEA +); + +ALTER TABLE ONLY propertystorage + ADD CONSTRAINT propertystorage_pkey PRIMARY KEY (id); + +CREATE UNIQUE INDEX propertystorage_ukey + ON propertystorage (path, name); + +CREATE TABLE users ( + id SERIAL NOT NULL, + username VARCHAR(50), + digesta1 VARCHAR(32) +); + +ALTER TABLE ONLY users + ADD CONSTRAINT users_pkey PRIMARY KEY (id); + +CREATE UNIQUE INDEX users_ukey + ON users USING btree (username); diff --git a/install/update.php b/install/update.php index f9f1d0a3c..8798a3d69 100644 --- a/install/update.php +++ b/install/update.php @@ -1,6 +1,6 @@ <?php -define( 'UPDATE_VERSION' , 1191 ); +define( 'UPDATE_VERSION' , 1193 ); /** * @@ -2546,3 +2546,435 @@ function update_r1190() { return UPDATE_SUCCESS; return UPDATE_FAILED; } + +function update_r1191() { + + $r = q("SELECT 1 FROM principals LIMIT 1"); + + if($r !== false) { + return UPDATE_SUCCESS; + } + else { + if(ACTIVE_DBTYPE == DBTYPE_POSTGRES) { + $r1 = q("CREATE TABLE addressbooks ( + id SERIAL NOT NULL, + principaluri VARCHAR(255), + displayname VARCHAR(255), + uri VARCHAR(200), + description TEXT, + synctoken INTEGER NOT NULL DEFAULT 1 + );" + ); + + $r2 = q("ALTER TABLE ONLY addressbooks ADD CONSTRAINT addressbooks_pkey PRIMARY KEY (id);"); + + $r3 = q("CREATE UNIQUE INDEX addressbooks_ukey ON addressbooks USING btree (principaluri, uri);"); + + $r4 = q("CREATE TABLE cards ( + id SERIAL NOT NULL, + addressbookid INTEGER NOT NULL, + carddata BYTEA, + uri VARCHAR(200), + lastmodified INTEGER, + etag VARCHAR(32), + size INTEGER NOT NULL + );" + ); + + $r5 = q("ALTER TABLE ONLY cards ADD CONSTRAINT cards_pkey PRIMARY KEY (id);"); + + $r6 = q("CREATE UNIQUE INDEX cards_ukey ON cards USING btree (addressbookid, uri);"); + + $r7 = q("CREATE TABLE addressbookchanges ( + id SERIAL NOT NULL, + uri VARCHAR(200) NOT NULL, + synctoken INTEGER NOT NULL, + addressbookid INTEGER NOT NULL, + operation SMALLINT NOT NULL + );" + ); + + $r8 = q("ALTER TABLE ONLY addressbookchanges ADD CONSTRAINT addressbookchanges_pkey PRIMARY KEY (id);"); + + $r9 = q("CREATE INDEX addressbookchanges_addressbookid_synctoken_ix ON addressbookchanges USING btree (addressbookid, synctoken);"); + + $r10 = q("CREATE TABLE calendarobjects ( + id SERIAL NOT NULL, + calendardata BYTEA, + uri VARCHAR(200), + calendarid INTEGER NOT NULL, + lastmodified INTEGER, + etag VARCHAR(32), + size INTEGER NOT NULL, + componenttype VARCHAR(8), + firstoccurence INTEGER, + lastoccurence INTEGER, + uid VARCHAR(200) + );" + ); + + $r11 = q("ALTER TABLE ONLY calendarobjects ADD CONSTRAINT calendarobjects_pkey PRIMARY KEY (id);"); + + $r12 = q("CREATE UNIQUE INDEX calendarobjects_ukey ON calendarobjects USING btree (calendarid, uri);"); + + $r13 = q("CREATE TABLE calendars ( + id SERIAL NOT NULL, + synctoken INTEGER NOT NULL DEFAULT 1, + components VARCHAR(21) + );" + ); + + $r14 = q("ALTER TABLE ONLY calendars ADD CONSTRAINT calendars_pkey PRIMARY KEY (id);"); + + $r15 = q("CREATE TABLE calendarinstances ( + id SERIAL NOT NULL, + calendarid INTEGER NOT NULL, + principaluri VARCHAR(100), + access SMALLINT NOT NULL DEFAULT '1', -- '1 = owner, 2 = read, 3 = readwrite' + displayname VARCHAR(100), + uri VARCHAR(200), + description TEXT, + calendarorder INTEGER NOT NULL DEFAULT 0, + calendarcolor VARCHAR(10), + timezone TEXT, + transparent SMALLINT NOT NULL DEFAULT '0', + share_href VARCHAR(100), + share_displayname VARCHAR(100), + share_invitestatus SMALLINT NOT NULL DEFAULT '2' -- '1 = noresponse, 2 = accepted, 3 = declined, 4 = invalid' + );" + ); + + $r16 = q("ALTER TABLE ONLY calendarinstances ADD CONSTRAINT calendarinstances_pkey PRIMARY KEY (id);"); + + $r17 = q("CREATE UNIQUE INDEX calendarinstances_principaluri_uri ON calendarinstances USING btree (principaluri, uri);"); + + $r18 = q("CREATE UNIQUE INDEX calendarinstances_principaluri_calendarid ON calendarinstances USING btree (principaluri, calendarid);"); + + $r19 = q("CREATE UNIQUE INDEX calendarinstances_principaluri_share_href ON calendarinstances USING btree (principaluri, share_href);"); + + $r20 = q("CREATE TABLE calendarsubscriptions ( + id SERIAL NOT NULL, + uri VARCHAR(200) NOT NULL, + principaluri VARCHAR(100) NOT NULL, + source TEXT, + displayname VARCHAR(100), + refreshrate VARCHAR(10), + calendarorder INTEGER NOT NULL DEFAULT 0, + calendarcolor VARCHAR(10), + striptodos SMALLINT NULL, + stripalarms SMALLINT NULL, + stripattachments SMALLINT NULL, + lastmodified INTEGER + );" + ); + + $r21 = q("ALTER TABLE ONLY calendarsubscriptions ADD CONSTRAINT calendarsubscriptions_pkey PRIMARY KEY (id);"); + + $r22 = q("CREATE UNIQUE INDEX calendarsubscriptions_ukey ON calendarsubscriptions USING btree (principaluri, uri);"); + + $r23 = q("CREATE TABLE calendarchanges ( + id SERIAL NOT NULL, + uri VARCHAR(200) NOT NULL, + synctoken INTEGER NOT NULL, + calendarid INTEGER NOT NULL, + operation SMALLINT NOT NULL DEFAULT 0 + );" + ); + + $r24 = q("ALTER TABLE ONLY calendarchanges ADD CONSTRAINT calendarchanges_pkey PRIMARY KEY (id);"); + + $r25 = q("CREATE INDEX calendarchanges_calendarid_synctoken_ix ON calendarchanges USING btree (calendarid, synctoken);"); + + $r26 = q("CREATE TABLE schedulingobjects ( + id SERIAL NOT NULL, + principaluri VARCHAR(255), + calendardata BYTEA, + uri VARCHAR(200), + lastmodified INTEGER, + etag VARCHAR(32), + size INTEGER NOT NULL + );" + ); + + $r27 = q("CREATE TABLE locks ( + id SERIAL NOT NULL, + owner VARCHAR(100), + timeout INTEGER, + created INTEGER, + token VARCHAR(100), + scope SMALLINT, + depth SMALLINT, + uri TEXT + );" + ); + + $r28 = q("ALTER TABLE ONLY locks ADD CONSTRAINT locks_pkey PRIMARY KEY (id);"); + + $r29 = q("CREATE INDEX locks_token_ix ON locks USING btree (token);"); + + $r30 = q("CREATE INDEX locks_uri_ix ON locks USING btree (uri);"); + + $r31 = q("CREATE TABLE principals ( + id SERIAL NOT NULL, + uri VARCHAR(200) NOT NULL, + email VARCHAR(80), + displayname VARCHAR(80) + );" + ); + + $r32 = q("ALTER TABLE ONLY principals ADD CONSTRAINT principals_pkey PRIMARY KEY (id);"); + + $r33 = q("CREATE UNIQUE INDEX principals_ukey ON principals USING btree (uri);"); + + $r34 = q("CREATE TABLE groupmembers ( + id SERIAL NOT NULL, + principal_id INTEGER NOT NULL, + member_id INTEGER NOT NULL + );" + ); + + $r35 = q("ALTER TABLE ONLY groupmembers ADD CONSTRAINT groupmembers_pkey PRIMARY KEY (id);"); + + $r36 = q("CREATE UNIQUE INDEX groupmembers_ukey ON groupmembers USING btree (principal_id, member_id);"); + + $r37 = q("CREATE TABLE propertystorage ( + id SERIAL NOT NULL, + path VARCHAR(1024) NOT NULL, + name VARCHAR(100) NOT NULL, + valuetype INT, + value BYTEA + );" + ); + + $r38 = q("ALTER TABLE ONLY propertystorage ADD CONSTRAINT propertystorage_pkey PRIMARY KEY (id);"); + + $r39 = q("CREATE UNIQUE INDEX propertystorage_ukey ON propertystorage (path, name);"); + + $r40 = q("CREATE TABLE users ( + id SERIAL NOT NULL, + username VARCHAR(50), + digesta1 VARCHAR(32) + );" + ); + + $r41 = q("ALTER TABLE ONLY users ADD CONSTRAINT users_pkey PRIMARY KEY (id);"); + + $r42 = q("CREATE UNIQUE INDEX users_ukey ON users USING btree (username);"); + + if( + $r1 && $r2 && $r3 && $r4 && $r5 && $r6 && $r7 && $r8 && $r9 && $r10 + && $r11 && $r12 && $r13 && $r14 && $r15 && $r16 && $r17 && $r18 && $r19 && $r20 + && $r21 && $r22 && $r23 && $r24 && $r25 && $r26 && $r27 && $r28 && $r29 && $r30 + && $r31 && $r32 && $r33 && $r34 && $r35 && $r36 && $r37 && $r38 && $r39 && $r40 + && $r41 && $r42 + ) + return UPDATE_SUCCESS; + return UPDATE_FAILED; + } + else { + $r1 = q("CREATE TABLE if not exists addressbooks ( + id INT(11) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, + principaluri VARBINARY(255), + displayname VARCHAR(255), + uri VARBINARY(200), + description TEXT, + synctoken INT(11) UNSIGNED NOT NULL DEFAULT '1', + UNIQUE(principaluri(100), uri(100)) + ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;" + ); + + $r2 = q("CREATE TABLE if not exists cards ( + id INT(11) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, + addressbookid INT(11) UNSIGNED NOT NULL, + carddata MEDIUMBLOB, + uri VARBINARY(200), + lastmodified INT(11) UNSIGNED, + etag VARBINARY(32), + size INT(11) UNSIGNED NOT NULL + ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;" + ); + + $r3 = q("CREATE TABLE if not exists addressbookchanges ( + id INT(11) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, + uri VARBINARY(200) NOT NULL, + synctoken INT(11) UNSIGNED NOT NULL, + addressbookid INT(11) UNSIGNED NOT NULL, + operation TINYINT(1) NOT NULL, + INDEX addressbookid_synctoken (addressbookid, synctoken) + ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;" + ); + + $r4 = q("CREATE TABLE if not exists calendarobjects ( + id INT(11) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, + calendardata MEDIUMBLOB, + uri VARBINARY(200), + calendarid INTEGER UNSIGNED NOT NULL, + lastmodified INT(11) UNSIGNED, + etag VARBINARY(32), + size INT(11) UNSIGNED NOT NULL, + componenttype VARBINARY(8), + firstoccurence INT(11) UNSIGNED, + lastoccurence INT(11) UNSIGNED, + uid VARBINARY(200), + UNIQUE(calendarid, uri), + INDEX calendarid_time (calendarid, firstoccurence) + ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;" + ); + + $r5 = q("CREATE TABLE if not exists calendars ( + id INTEGER UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, + synctoken INTEGER UNSIGNED NOT NULL DEFAULT '1', + components VARBINARY(21) + ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;" + ); + + $r6 = q("CREATE TABLE if not exists calendarinstances ( + id INTEGER UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, + calendarid INTEGER UNSIGNED NOT NULL, + principaluri VARBINARY(100), + access TINYINT(1) NOT NULL DEFAULT '1' COMMENT '1 = owner, 2 = read, 3 = readwrite', + displayname VARCHAR(100), + uri VARBINARY(200), + description TEXT, + calendarorder INT(11) UNSIGNED NOT NULL DEFAULT '0', + calendarcolor VARBINARY(10), + timezone TEXT, + transparent TINYINT(1) NOT NULL DEFAULT '0', + share_href VARBINARY(100), + share_displayname VARCHAR(100), + share_invitestatus TINYINT(1) NOT NULL DEFAULT '2' COMMENT '1 = noresponse, 2 = accepted, 3 = declined, 4 = invalid', + UNIQUE(principaluri, uri), + UNIQUE(calendarid, principaluri), + UNIQUE(calendarid, share_href) + ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;" + ); + + $r7 = q("CREATE TABLE if not exists calendarchanges ( + id INT(11) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, + uri VARBINARY(200) NOT NULL, + synctoken INT(11) UNSIGNED NOT NULL, + calendarid INT(11) UNSIGNED NOT NULL, + operation TINYINT(1) NOT NULL, + INDEX calendarid_synctoken (calendarid, synctoken) + ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;" + ); + + $r8 = q("CREATE TABLE if not exists calendarsubscriptions ( + id INT(11) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, + uri VARBINARY(200) NOT NULL, + principaluri VARBINARY(100) NOT NULL, + source TEXT, + displayname VARCHAR(100), + refreshrate VARCHAR(10), + calendarorder INT(11) UNSIGNED NOT NULL DEFAULT '0', + calendarcolor VARBINARY(10), + striptodos TINYINT(1) NULL, + stripalarms TINYINT(1) NULL, + stripattachments TINYINT(1) NULL, + lastmodified INT(11) UNSIGNED, + UNIQUE(principaluri, uri) + ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;" + ); + + $r9 = q("CREATE TABLE if not exists schedulingobjects ( + id INT(11) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, + principaluri VARBINARY(255), + calendardata MEDIUMBLOB, + uri VARBINARY(200), + lastmodified INT(11) UNSIGNED, + etag VARBINARY(32), + size INT(11) UNSIGNED NOT NULL + ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;" + ); + + $r10 = q("CREATE TABLE if not exists locks ( + id INTEGER UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, + owner VARCHAR(100), + timeout INTEGER UNSIGNED, + created INTEGER, + token VARBINARY(100), + scope TINYINT, + depth TINYINT, + uri VARBINARY(1000), + INDEX(token), + INDEX(uri(100)) + ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;" + ); + + $r11 = q("CREATE TABLE if not exists principals ( + id INTEGER UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, + uri VARBINARY(200) NOT NULL, + email VARBINARY(80), + displayname VARCHAR(80), + UNIQUE(uri) + ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;" + ); + + $r12 = q("CREATE TABLE if not exists groupmembers ( + id INTEGER UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, + principal_id INTEGER UNSIGNED NOT NULL, + member_id INTEGER UNSIGNED NOT NULL, + UNIQUE(principal_id, member_id) + ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;" + ); + + $r13 = q("CREATE TABLE if not exists propertystorage ( + id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, + path VARBINARY(1024) NOT NULL, + name VARBINARY(100) NOT NULL, + valuetype INT UNSIGNED, + value MEDIUMBLOB + ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;" + ); + + $r14 = q("CREATE UNIQUE INDEX path_property ON propertystorage (path(600), name(100));"); + + $r15 = q("CREATE TABLE if not exists users ( + id INTEGER UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, + username VARBINARY(50), + digesta1 VARBINARY(32), + UNIQUE(username) + ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;" + ); + + $r16 = q("CREATE TABLE if not exists calendarinstances ( + id INTEGER UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, + calendarid INTEGER UNSIGNED NOT NULL, + principaluri VARBINARY(100), + access TINYINT(1) NOT NULL DEFAULT '1' COMMENT '1 = owner, 2 = read, 3 = readwrite', + displayname VARCHAR(100), + uri VARBINARY(200), + description TEXT, + calendarorder INT(11) UNSIGNED NOT NULL DEFAULT '0', + calendarcolor VARBINARY(10), + timezone TEXT, + transparent TINYINT(1) NOT NULL DEFAULT '0', + share_href VARBINARY(100), + share_displayname VARCHAR(100), + share_invitestatus TINYINT(1) NOT NULL DEFAULT '2' COMMENT '1 = noresponse, 2 = accepted, 3 = declined, 4 = invalid', + UNIQUE(principaluri, uri), + UNIQUE(calendarid, principaluri), + UNIQUE(calendarid, share_href) + ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;" + ); + + if($r1 && $r2 && $r3 && $r4 && $r5 && $r6 && $r7 && $r8 && $r9 && $r10 && $r11 && $r12 && $r13 && $r14 && $r15 && $r16) + return UPDATE_SUCCESS; + return UPDATE_FAILED; + } + } +} + +function update_r1192() { + + if(ACTIVE_DBTYPE == DBTYPE_POSTGRES) { + $r1 = q("CREATE INDEX item_obj_type ON item (obj_type)"); + } + else { + $r1 = q("ALTER TABLE item ADD INDEX (obj_type)"); + } + + if($r1) + return UPDATE_SUCCESS; + return UPDATE_FAILED; +} |