From a9c327c068a0a736956b4216717ac4fe3fcc9774 Mon Sep 17 00:00:00 2001 From: Sandeep Sukhani Date: Wed, 20 Mar 2019 00:35:15 +0530 Subject: [PATCH] [MM-13341] Add an upgrade test to verify schema (#10419) * [MM-13341] Add an upgrade test to verify schema Upgrade test is done by following steps: 1. A mysql dump generated from v4.10.0 is imported in a database and is ran through migration code 2. Another fresh database is generated without any initial data, which gets latest schema. 3. Diff between these 2 databases is generated using mysqldiff tool from mysql utilities For db setup, version cli command is used which takes care of migration or setup of fresh db * Using 5.7 tag for mysql docker image which is already used for db setup * Starting docker containers for db before running tests * Using db from v5.0.0 for migration test * Added migration test for psql and made some improvements in running commands in docker * Add postgres db dump file * Updated message * moved dump files to scripts and using error code from diff command --- Makefile | 4 + scripts/mattermost-mysql-5.0.sql | 1054 ++++++++++++++ scripts/mattermost-postgresql-5.0.sql | 1816 +++++++++++++++++++++++++ scripts/mysql-migration-test.sh | 39 + scripts/psql-migration-test.sh | 39 + 5 files changed, 2952 insertions(+) create mode 100644 scripts/mattermost-mysql-5.0.sql create mode 100644 scripts/mattermost-postgresql-5.0.sql create mode 100755 scripts/mysql-migration-test.sh create mode 100755 scripts/psql-migration-test.sh diff --git a/Makefile b/Makefile index 66b24cd42a..0942bf5d5a 100644 --- a/Makefile +++ b/Makefile @@ -397,6 +397,10 @@ test-compile: $(GO) test $(GOFLAGS) -c $$package; \ done +test-db-migration: start-docker + ./scripts/mysql-migration-test.sh + ./scripts/psql-migration-test.sh + test-server: start-docker go-junit-report do-cover-file ## Runs tests. ifeq ($(BUILD_ENTERPRISE_READY),true) @echo Running all tests diff --git a/scripts/mattermost-mysql-5.0.sql b/scripts/mattermost-mysql-5.0.sql new file mode 100644 index 0000000000..1fe9a30605 --- /dev/null +++ b/scripts/mattermost-mysql-5.0.sql @@ -0,0 +1,1054 @@ +-- MySQL dump 10.13 Distrib 5.7.25, for Linux (x86_64) +-- +-- Host: 127.0.0.1 Database: mattermost_test +-- ------------------------------------------------------ +-- Server version 5.7.23 + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + +-- +-- Table structure for table `Audits` +-- + +DROP TABLE IF EXISTS `Audits`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `Audits` ( + `Id` varchar(26) NOT NULL, + `CreateAt` bigint(20) DEFAULT NULL, + `UserId` varchar(26) DEFAULT NULL, + `Action` text, + `ExtraInfo` text, + `IpAddress` varchar(64) DEFAULT NULL, + `SessionId` varchar(26) DEFAULT NULL, + PRIMARY KEY (`Id`), + KEY `idx_audits_user_id` (`UserId`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `Audits` +-- + +LOCK TABLES `Audits` WRITE; +/*!40000 ALTER TABLE `Audits` DISABLE KEYS */; +/*!40000 ALTER TABLE `Audits` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `ChannelMemberHistory` +-- + +DROP TABLE IF EXISTS `ChannelMemberHistory`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `ChannelMemberHistory` ( + `ChannelId` varchar(26) NOT NULL, + `UserId` varchar(26) NOT NULL, + `JoinTime` bigint(20) NOT NULL, + `LeaveTime` bigint(20) DEFAULT NULL, + PRIMARY KEY (`ChannelId`,`UserId`,`JoinTime`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `ChannelMemberHistory` +-- + +LOCK TABLES `ChannelMemberHistory` WRITE; +/*!40000 ALTER TABLE `ChannelMemberHistory` DISABLE KEYS */; +/*!40000 ALTER TABLE `ChannelMemberHistory` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `ChannelMembers` +-- + +DROP TABLE IF EXISTS `ChannelMembers`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `ChannelMembers` ( + `ChannelId` varchar(26) NOT NULL, + `UserId` varchar(26) NOT NULL, + `Roles` varchar(64) DEFAULT NULL, + `LastViewedAt` bigint(20) DEFAULT NULL, + `MsgCount` bigint(20) DEFAULT NULL, + `MentionCount` bigint(20) DEFAULT NULL, + `NotifyProps` text, + `LastUpdateAt` bigint(20) DEFAULT NULL, + `SchemeUser` tinyint(4) DEFAULT NULL, + `SchemeAdmin` tinyint(4) DEFAULT NULL, + PRIMARY KEY (`ChannelId`,`UserId`), + KEY `idx_channelmembers_channel_id` (`ChannelId`), + KEY `idx_channelmembers_user_id` (`UserId`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `ChannelMembers` +-- + +LOCK TABLES `ChannelMembers` WRITE; +/*!40000 ALTER TABLE `ChannelMembers` DISABLE KEYS */; +/*!40000 ALTER TABLE `ChannelMembers` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `Channels` +-- + +DROP TABLE IF EXISTS `Channels`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `Channels` ( + `Id` varchar(26) NOT NULL, + `CreateAt` bigint(20) DEFAULT NULL, + `UpdateAt` bigint(20) DEFAULT NULL, + `DeleteAt` bigint(20) DEFAULT NULL, + `TeamId` varchar(26) DEFAULT NULL, + `Type` varchar(1) DEFAULT NULL, + `DisplayName` varchar(64) DEFAULT NULL, + `Name` varchar(64) DEFAULT NULL, + `Header` text, + `Purpose` varchar(250) DEFAULT NULL, + `LastPostAt` bigint(20) DEFAULT NULL, + `TotalMsgCount` bigint(20) DEFAULT NULL, + `ExtraUpdateAt` bigint(20) DEFAULT NULL, + `CreatorId` varchar(26) DEFAULT NULL, + `SchemeId` varchar(26) DEFAULT NULL, + PRIMARY KEY (`Id`), + UNIQUE KEY `Name` (`Name`,`TeamId`), + KEY `idx_channels_team_id` (`TeamId`), + KEY `idx_channels_name` (`Name`), + KEY `idx_channels_update_at` (`UpdateAt`), + KEY `idx_channels_create_at` (`CreateAt`), + KEY `idx_channels_delete_at` (`DeleteAt`), + FULLTEXT KEY `idx_channels_txt` (`Name`,`DisplayName`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `Channels` +-- + +LOCK TABLES `Channels` WRITE; +/*!40000 ALTER TABLE `Channels` DISABLE KEYS */; +/*!40000 ALTER TABLE `Channels` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `ClusterDiscovery` +-- + +DROP TABLE IF EXISTS `ClusterDiscovery`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `ClusterDiscovery` ( + `Id` varchar(26) NOT NULL, + `Type` varchar(64) DEFAULT NULL, + `ClusterName` varchar(64) DEFAULT NULL, + `Hostname` text, + `GossipPort` int(11) DEFAULT NULL, + `Port` int(11) DEFAULT NULL, + `CreateAt` bigint(20) DEFAULT NULL, + `LastPingAt` bigint(20) DEFAULT NULL, + PRIMARY KEY (`Id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `ClusterDiscovery` +-- + +LOCK TABLES `ClusterDiscovery` WRITE; +/*!40000 ALTER TABLE `ClusterDiscovery` DISABLE KEYS */; +/*!40000 ALTER TABLE `ClusterDiscovery` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `CommandWebhooks` +-- + +DROP TABLE IF EXISTS `CommandWebhooks`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `CommandWebhooks` ( + `Id` varchar(26) NOT NULL, + `CreateAt` bigint(20) DEFAULT NULL, + `CommandId` varchar(26) DEFAULT NULL, + `UserId` varchar(26) DEFAULT NULL, + `ChannelId` varchar(26) DEFAULT NULL, + `RootId` varchar(26) DEFAULT NULL, + `ParentId` varchar(26) DEFAULT NULL, + `UseCount` int(11) DEFAULT NULL, + PRIMARY KEY (`Id`), + KEY `idx_command_webhook_create_at` (`CreateAt`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `CommandWebhooks` +-- + +LOCK TABLES `CommandWebhooks` WRITE; +/*!40000 ALTER TABLE `CommandWebhooks` DISABLE KEYS */; +/*!40000 ALTER TABLE `CommandWebhooks` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `Commands` +-- + +DROP TABLE IF EXISTS `Commands`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `Commands` ( + `Id` varchar(26) NOT NULL, + `Token` varchar(26) DEFAULT NULL, + `CreateAt` bigint(20) DEFAULT NULL, + `UpdateAt` bigint(20) DEFAULT NULL, + `DeleteAt` bigint(20) DEFAULT NULL, + `CreatorId` varchar(26) DEFAULT NULL, + `TeamId` varchar(26) DEFAULT NULL, + `Trigger` varchar(128) DEFAULT NULL, + `Method` varchar(1) DEFAULT NULL, + `Username` varchar(64) DEFAULT NULL, + `IconURL` text, + `AutoComplete` tinyint(1) DEFAULT NULL, + `AutoCompleteDesc` text, + `AutoCompleteHint` text, + `DisplayName` varchar(64) DEFAULT NULL, + `Description` varchar(128) DEFAULT NULL, + `URL` text, + PRIMARY KEY (`Id`), + KEY `idx_command_team_id` (`TeamId`), + KEY `idx_command_update_at` (`UpdateAt`), + KEY `idx_command_create_at` (`CreateAt`), + KEY `idx_command_delete_at` (`DeleteAt`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `Commands` +-- + +LOCK TABLES `Commands` WRITE; +/*!40000 ALTER TABLE `Commands` DISABLE KEYS */; +/*!40000 ALTER TABLE `Commands` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `Compliances` +-- + +DROP TABLE IF EXISTS `Compliances`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `Compliances` ( + `Id` varchar(26) NOT NULL, + `CreateAt` bigint(20) DEFAULT NULL, + `UserId` varchar(26) DEFAULT NULL, + `Status` varchar(64) DEFAULT NULL, + `Count` int(11) DEFAULT NULL, + `Desc` text, + `Type` varchar(64) DEFAULT NULL, + `StartAt` bigint(20) DEFAULT NULL, + `EndAt` bigint(20) DEFAULT NULL, + `Keywords` text, + `Emails` text, + PRIMARY KEY (`Id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `Compliances` +-- + +LOCK TABLES `Compliances` WRITE; +/*!40000 ALTER TABLE `Compliances` DISABLE KEYS */; +/*!40000 ALTER TABLE `Compliances` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `Emoji` +-- + +DROP TABLE IF EXISTS `Emoji`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `Emoji` ( + `Id` varchar(26) NOT NULL, + `CreateAt` bigint(20) DEFAULT NULL, + `UpdateAt` bigint(20) DEFAULT NULL, + `DeleteAt` bigint(20) DEFAULT NULL, + `CreatorId` varchar(26) DEFAULT NULL, + `Name` varchar(64) DEFAULT NULL, + PRIMARY KEY (`Id`), + UNIQUE KEY `Name` (`Name`,`DeleteAt`), + KEY `idx_emoji_update_at` (`UpdateAt`), + KEY `idx_emoji_create_at` (`CreateAt`), + KEY `idx_emoji_delete_at` (`DeleteAt`), + KEY `idx_emoji_name` (`Name`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `Emoji` +-- + +LOCK TABLES `Emoji` WRITE; +/*!40000 ALTER TABLE `Emoji` DISABLE KEYS */; +/*!40000 ALTER TABLE `Emoji` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `FileInfo` +-- + +DROP TABLE IF EXISTS `FileInfo`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `FileInfo` ( + `Id` varchar(26) NOT NULL, + `CreatorId` varchar(26) DEFAULT NULL, + `PostId` varchar(26) DEFAULT NULL, + `CreateAt` bigint(20) DEFAULT NULL, + `UpdateAt` bigint(20) DEFAULT NULL, + `DeleteAt` bigint(20) DEFAULT NULL, + `Path` text, + `ThumbnailPath` text, + `PreviewPath` text, + `Name` text, + `Extension` varchar(64) DEFAULT NULL, + `Size` bigint(20) DEFAULT NULL, + `MimeType` text, + `Width` int(11) DEFAULT NULL, + `Height` int(11) DEFAULT NULL, + `HasPreviewImage` tinyint(1) DEFAULT NULL, + PRIMARY KEY (`Id`), + KEY `idx_fileinfo_update_at` (`UpdateAt`), + KEY `idx_fileinfo_create_at` (`CreateAt`), + KEY `idx_fileinfo_delete_at` (`DeleteAt`), + KEY `idx_fileinfo_postid_at` (`PostId`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `FileInfo` +-- + +LOCK TABLES `FileInfo` WRITE; +/*!40000 ALTER TABLE `FileInfo` DISABLE KEYS */; +/*!40000 ALTER TABLE `FileInfo` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `IncomingWebhooks` +-- + +DROP TABLE IF EXISTS `IncomingWebhooks`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `IncomingWebhooks` ( + `Id` varchar(26) NOT NULL, + `CreateAt` bigint(20) DEFAULT NULL, + `UpdateAt` bigint(20) DEFAULT NULL, + `DeleteAt` bigint(20) DEFAULT NULL, + `UserId` varchar(26) DEFAULT NULL, + `ChannelId` varchar(26) DEFAULT NULL, + `TeamId` varchar(26) DEFAULT NULL, + `DisplayName` varchar(64) DEFAULT NULL, + `Description` varchar(128) DEFAULT NULL, + `Username` varchar(255) DEFAULT NULL, + `IconURL` varchar(255) DEFAULT NULL, + `ChannelLocked` tinyint(1) DEFAULT NULL, + PRIMARY KEY (`Id`), + KEY `idx_incoming_webhook_user_id` (`UserId`), + KEY `idx_incoming_webhook_team_id` (`TeamId`), + KEY `idx_incoming_webhook_update_at` (`UpdateAt`), + KEY `idx_incoming_webhook_create_at` (`CreateAt`), + KEY `idx_incoming_webhook_delete_at` (`DeleteAt`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `IncomingWebhooks` +-- + +LOCK TABLES `IncomingWebhooks` WRITE; +/*!40000 ALTER TABLE `IncomingWebhooks` DISABLE KEYS */; +/*!40000 ALTER TABLE `IncomingWebhooks` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `Jobs` +-- + +DROP TABLE IF EXISTS `Jobs`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `Jobs` ( + `Id` varchar(26) NOT NULL, + `Type` varchar(32) DEFAULT NULL, + `Priority` bigint(20) DEFAULT NULL, + `CreateAt` bigint(20) DEFAULT NULL, + `StartAt` bigint(20) DEFAULT NULL, + `LastActivityAt` bigint(20) DEFAULT NULL, + `Status` varchar(32) DEFAULT NULL, + `Progress` bigint(20) DEFAULT NULL, + `Data` text, + PRIMARY KEY (`Id`), + KEY `idx_jobs_type` (`Type`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `Jobs` +-- + +LOCK TABLES `Jobs` WRITE; +/*!40000 ALTER TABLE `Jobs` DISABLE KEYS */; +/*!40000 ALTER TABLE `Jobs` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `Licenses` +-- + +DROP TABLE IF EXISTS `Licenses`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `Licenses` ( + `Id` varchar(26) NOT NULL, + `CreateAt` bigint(20) DEFAULT NULL, + `Bytes` text, + PRIMARY KEY (`Id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `Licenses` +-- + +LOCK TABLES `Licenses` WRITE; +/*!40000 ALTER TABLE `Licenses` DISABLE KEYS */; +/*!40000 ALTER TABLE `Licenses` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `OAuthAccessData` +-- + +DROP TABLE IF EXISTS `OAuthAccessData`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `OAuthAccessData` ( + `ClientId` varchar(26) DEFAULT NULL, + `UserId` varchar(26) DEFAULT NULL, + `Token` varchar(26) NOT NULL, + `RefreshToken` varchar(26) DEFAULT NULL, + `RedirectUri` text, + `ExpiresAt` bigint(20) DEFAULT NULL, + `Scope` varchar(128) DEFAULT NULL, + PRIMARY KEY (`Token`), + UNIQUE KEY `ClientId` (`ClientId`,`UserId`), + KEY `idx_oauthaccessdata_client_id` (`ClientId`), + KEY `idx_oauthaccessdata_user_id` (`UserId`), + KEY `idx_oauthaccessdata_refresh_token` (`RefreshToken`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `OAuthAccessData` +-- + +LOCK TABLES `OAuthAccessData` WRITE; +/*!40000 ALTER TABLE `OAuthAccessData` DISABLE KEYS */; +/*!40000 ALTER TABLE `OAuthAccessData` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `OAuthApps` +-- + +DROP TABLE IF EXISTS `OAuthApps`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `OAuthApps` ( + `Id` varchar(26) NOT NULL, + `CreatorId` varchar(26) DEFAULT NULL, + `CreateAt` bigint(20) DEFAULT NULL, + `UpdateAt` bigint(20) DEFAULT NULL, + `ClientSecret` varchar(128) DEFAULT NULL, + `Name` varchar(64) DEFAULT NULL, + `Description` text, + `IconURL` text, + `CallbackUrls` text, + `Homepage` text, + `IsTrusted` tinyint(1) DEFAULT NULL, + PRIMARY KEY (`Id`), + KEY `idx_oauthapps_creator_id` (`CreatorId`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `OAuthApps` +-- + +LOCK TABLES `OAuthApps` WRITE; +/*!40000 ALTER TABLE `OAuthApps` DISABLE KEYS */; +/*!40000 ALTER TABLE `OAuthApps` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `OAuthAuthData` +-- + +DROP TABLE IF EXISTS `OAuthAuthData`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `OAuthAuthData` ( + `ClientId` varchar(26) DEFAULT NULL, + `UserId` varchar(26) DEFAULT NULL, + `Code` varchar(128) NOT NULL, + `ExpiresIn` int(11) DEFAULT NULL, + `CreateAt` bigint(20) DEFAULT NULL, + `RedirectUri` text, + `State` text, + `Scope` varchar(128) DEFAULT NULL, + PRIMARY KEY (`Code`), + KEY `idx_oauthauthdata_client_id` (`Code`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `OAuthAuthData` +-- + +LOCK TABLES `OAuthAuthData` WRITE; +/*!40000 ALTER TABLE `OAuthAuthData` DISABLE KEYS */; +/*!40000 ALTER TABLE `OAuthAuthData` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `OutgoingWebhooks` +-- + +DROP TABLE IF EXISTS `OutgoingWebhooks`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `OutgoingWebhooks` ( + `Id` varchar(26) NOT NULL, + `Token` varchar(26) DEFAULT NULL, + `CreateAt` bigint(20) DEFAULT NULL, + `UpdateAt` bigint(20) DEFAULT NULL, + `DeleteAt` bigint(20) DEFAULT NULL, + `CreatorId` varchar(26) DEFAULT NULL, + `ChannelId` varchar(26) DEFAULT NULL, + `TeamId` varchar(26) DEFAULT NULL, + `TriggerWords` text, + `TriggerWhen` int(11) DEFAULT NULL, + `CallbackURLs` text, + `DisplayName` varchar(64) DEFAULT NULL, + `Description` varchar(128) DEFAULT NULL, + `ContentType` varchar(128) DEFAULT NULL, + PRIMARY KEY (`Id`), + KEY `idx_outgoing_webhook_team_id` (`TeamId`), + KEY `idx_outgoing_webhook_update_at` (`UpdateAt`), + KEY `idx_outgoing_webhook_create_at` (`CreateAt`), + KEY `idx_outgoing_webhook_delete_at` (`DeleteAt`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `OutgoingWebhooks` +-- + +LOCK TABLES `OutgoingWebhooks` WRITE; +/*!40000 ALTER TABLE `OutgoingWebhooks` DISABLE KEYS */; +/*!40000 ALTER TABLE `OutgoingWebhooks` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `PluginKeyValueStore` +-- + +DROP TABLE IF EXISTS `PluginKeyValueStore`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `PluginKeyValueStore` ( + `PluginId` varchar(190) NOT NULL, + `PKey` varchar(50) NOT NULL, + `PValue` mediumblob, + PRIMARY KEY (`PluginId`,`PKey`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `PluginKeyValueStore` +-- + +LOCK TABLES `PluginKeyValueStore` WRITE; +/*!40000 ALTER TABLE `PluginKeyValueStore` DISABLE KEYS */; +/*!40000 ALTER TABLE `PluginKeyValueStore` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `Posts` +-- + +DROP TABLE IF EXISTS `Posts`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `Posts` ( + `Id` varchar(26) NOT NULL, + `CreateAt` bigint(20) DEFAULT NULL, + `UpdateAt` bigint(20) DEFAULT NULL, + `EditAt` bigint(20) DEFAULT NULL, + `DeleteAt` bigint(20) DEFAULT NULL, + `IsPinned` tinyint(1) DEFAULT NULL, + `UserId` varchar(26) DEFAULT NULL, + `ChannelId` varchar(26) DEFAULT NULL, + `RootId` varchar(26) DEFAULT NULL, + `ParentId` varchar(26) DEFAULT NULL, + `OriginalId` varchar(26) DEFAULT NULL, + `Message` text, + `Type` varchar(26) DEFAULT NULL, + `Props` text, + `Hashtags` text, + `Filenames` text, + `FileIds` varchar(150) DEFAULT NULL, + `HasReactions` tinyint(1) DEFAULT NULL, + PRIMARY KEY (`Id`), + KEY `idx_posts_update_at` (`UpdateAt`), + KEY `idx_posts_create_at` (`CreateAt`), + KEY `idx_posts_delete_at` (`DeleteAt`), + KEY `idx_posts_channel_id` (`ChannelId`), + KEY `idx_posts_root_id` (`RootId`), + KEY `idx_posts_user_id` (`UserId`), + KEY `idx_posts_is_pinned` (`IsPinned`), + KEY `idx_posts_channel_id_update_at` (`ChannelId`,`UpdateAt`), + KEY `idx_posts_channel_id_delete_at_create_at` (`ChannelId`,`DeleteAt`,`CreateAt`), + FULLTEXT KEY `idx_posts_message_txt` (`Message`), + FULLTEXT KEY `idx_posts_hashtags_txt` (`Hashtags`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `Posts` +-- + +LOCK TABLES `Posts` WRITE; +/*!40000 ALTER TABLE `Posts` DISABLE KEYS */; +/*!40000 ALTER TABLE `Posts` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `Preferences` +-- + +DROP TABLE IF EXISTS `Preferences`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `Preferences` ( + `UserId` varchar(26) NOT NULL, + `Category` varchar(32) NOT NULL, + `Name` varchar(32) NOT NULL, + `Value` text, + PRIMARY KEY (`UserId`,`Category`,`Name`), + KEY `idx_preferences_user_id` (`UserId`), + KEY `idx_preferences_category` (`Category`), + KEY `idx_preferences_name` (`Name`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `Preferences` +-- + +LOCK TABLES `Preferences` WRITE; +/*!40000 ALTER TABLE `Preferences` DISABLE KEYS */; +/*!40000 ALTER TABLE `Preferences` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `Reactions` +-- + +DROP TABLE IF EXISTS `Reactions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `Reactions` ( + `UserId` varchar(26) NOT NULL, + `PostId` varchar(26) NOT NULL, + `EmojiName` varchar(64) NOT NULL, + `CreateAt` bigint(20) DEFAULT NULL, + PRIMARY KEY (`UserId`,`PostId`,`EmojiName`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `Reactions` +-- + +LOCK TABLES `Reactions` WRITE; +/*!40000 ALTER TABLE `Reactions` DISABLE KEYS */; +/*!40000 ALTER TABLE `Reactions` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `Roles` +-- + +DROP TABLE IF EXISTS `Roles`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `Roles` ( + `Id` varchar(26) NOT NULL, + `Name` varchar(64) DEFAULT NULL, + `DisplayName` varchar(128) DEFAULT NULL, + `Description` text, + `CreateAt` bigint(20) DEFAULT NULL, + `UpdateAt` bigint(20) DEFAULT NULL, + `DeleteAt` bigint(20) DEFAULT NULL, + `Permissions` text, + `SchemeManaged` tinyint(1) DEFAULT NULL, + `BuiltIn` tinyint(1) DEFAULT NULL, + PRIMARY KEY (`Id`), + UNIQUE KEY `Name` (`Name`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `Roles` +-- + +LOCK TABLES `Roles` WRITE; +/*!40000 ALTER TABLE `Roles` DISABLE KEYS */; +INSERT INTO `Roles` VALUES ('1x1ypn6zwbrubc3i7urg1qc4hr','team_user','authentication.roles.team_user.name','authentication.roles.team_user.description',1552023386683,1552023386683,0,' list_team_channels join_public_channels read_public_channel view_team create_public_channel manage_public_channel_properties delete_public_channel create_private_channel manage_private_channel_properties delete_private_channel invite_user add_user_to_team',1,1),('9ro6s3aiffbomdsm1dszr1gxec','team_post_all','authentication.roles.team_post_all.name','authentication.roles.team_post_all.description',1552023386717,1552023386717,0,' create_post',0,1),('api7kwbqwjbrtp8b5zq1d5ot8w','system_user_access_token','authentication.roles.system_user_access_token.name','authentication.roles.system_user_access_token.description',1552023386784,1552023386784,0,' create_user_access_token read_user_access_token revoke_user_access_token',0,1),('b5hwuid8ofdb9eoca1skzepmoy','team_post_all_public','authentication.roles.team_post_all_public.name','authentication.roles.team_post_all_public.description',1552023386184,1552023386184,0,' create_post_public',0,1),('j79gy46igfrztkyihuqm38h51y','system_user','authentication.roles.global_user.name','authentication.roles.global_user.description',1552023386370,1552023386918,0,' create_direct_channel create_group_channel permanent_delete_user create_team manage_emojis',1,1),('miqk4yzctbyoxg8ye3sbfuoa9y','channel_user','authentication.roles.channel_user.name','authentication.roles.channel_user.description',1552023386587,1552023386587,0,' read_channel add_reaction remove_reaction manage_public_channel_members upload_file get_public_link create_post use_slash_commands manage_private_channel_members delete_post edit_post',1,1),('myf6w6mm5pbabx1dfhxbc9wyyy','system_post_all','authentication.roles.system_post_all.name','authentication.roles.system_post_all.description',1552023386460,1552023386460,0,' create_post',0,1),('nzwf773izfrkirwy47ow3o1xca','system_post_all_public','authentication.roles.system_post_all_public.name','authentication.roles.system_post_all_public.description',1552023386751,1552023386751,0,' create_post_public',0,1),('rhsqatx4yjnk8cwjh785p9tabo','system_admin','authentication.roles.global_admin.name','authentication.roles.global_admin.description',1552023386505,1552023386953,0,' assign_system_admin_role manage_system manage_roles manage_public_channel_properties manage_public_channel_members manage_private_channel_members delete_public_channel create_public_channel manage_private_channel_properties delete_private_channel create_private_channel manage_system_wide_oauth manage_others_webhooks edit_other_users manage_oauth invite_user delete_post delete_others_posts create_team add_user_to_team list_users_without_team manage_jobs create_post_public create_post_ephemeral create_user_access_token read_user_access_token revoke_user_access_token remove_others_reactions list_team_channels join_public_channels read_public_channel view_team read_channel add_reaction remove_reaction upload_file get_public_link create_post use_slash_commands edit_others_posts remove_user_from_team manage_team import_team manage_team_roles manage_channel_roles manage_slash_commands manage_others_slash_commands manage_webhooks edit_post manage_emojis manage_others_emojis',1,1),('s3uda9wt7p8cinzyyjb418o99h','team_admin','authentication.roles.team_admin.name','authentication.roles.team_admin.description',1552023386281,1552023386281,0,' edit_others_posts remove_user_from_team manage_team import_team manage_team_roles manage_channel_roles manage_others_webhooks manage_slash_commands manage_others_slash_commands manage_webhooks delete_post delete_others_posts',1,1),('uowhz7j9s3gx7r37b1twk87uhy','channel_admin','authentication.roles.channel_admin.name','authentication.roles.channel_admin.description',1552023386649,1552023386649,0,' manage_channel_roles',1,1); +/*!40000 ALTER TABLE `Roles` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `Schemes` +-- + +DROP TABLE IF EXISTS `Schemes`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `Schemes` ( + `Id` varchar(26) NOT NULL, + `Name` varchar(64) DEFAULT NULL, + `DisplayName` varchar(128) DEFAULT NULL, + `Description` text, + `CreateAt` bigint(20) DEFAULT NULL, + `UpdateAt` bigint(20) DEFAULT NULL, + `DeleteAt` bigint(20) DEFAULT NULL, + `Scope` varchar(32) DEFAULT NULL, + `DefaultTeamAdminRole` varchar(64) DEFAULT NULL, + `DefaultTeamUserRole` varchar(64) DEFAULT NULL, + `DefaultChannelAdminRole` varchar(64) DEFAULT NULL, + `DefaultChannelUserRole` varchar(64) DEFAULT NULL, + PRIMARY KEY (`Id`), + UNIQUE KEY `Name` (`Name`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `Schemes` +-- + +LOCK TABLES `Schemes` WRITE; +/*!40000 ALTER TABLE `Schemes` DISABLE KEYS */; +/*!40000 ALTER TABLE `Schemes` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `Sessions` +-- + +DROP TABLE IF EXISTS `Sessions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `Sessions` ( + `Id` varchar(26) NOT NULL, + `Token` varchar(26) DEFAULT NULL, + `CreateAt` bigint(20) DEFAULT NULL, + `ExpiresAt` bigint(20) DEFAULT NULL, + `LastActivityAt` bigint(20) DEFAULT NULL, + `UserId` varchar(26) DEFAULT NULL, + `DeviceId` text, + `Roles` varchar(64) DEFAULT NULL, + `IsOAuth` tinyint(1) DEFAULT NULL, + `Props` text, + PRIMARY KEY (`Id`), + KEY `idx_sessions_user_id` (`UserId`), + KEY `idx_sessions_token` (`Token`), + KEY `idx_sessions_expires_at` (`ExpiresAt`), + KEY `idx_sessions_create_at` (`CreateAt`), + KEY `idx_sessions_last_activity_at` (`LastActivityAt`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `Sessions` +-- + +LOCK TABLES `Sessions` WRITE; +/*!40000 ALTER TABLE `Sessions` DISABLE KEYS */; +/*!40000 ALTER TABLE `Sessions` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `Status` +-- + +DROP TABLE IF EXISTS `Status`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `Status` ( + `UserId` varchar(26) NOT NULL, + `Status` varchar(32) DEFAULT NULL, + `Manual` tinyint(1) DEFAULT NULL, + `LastActivityAt` bigint(20) DEFAULT NULL, + PRIMARY KEY (`UserId`), + KEY `idx_status_user_id` (`UserId`), + KEY `idx_status_status` (`Status`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `Status` +-- + +LOCK TABLES `Status` WRITE; +/*!40000 ALTER TABLE `Status` DISABLE KEYS */; +/*!40000 ALTER TABLE `Status` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `Systems` +-- + +DROP TABLE IF EXISTS `Systems`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `Systems` ( + `Name` varchar(64) NOT NULL, + `Value` text, + PRIMARY KEY (`Name`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `Systems` +-- + +LOCK TABLES `Systems` WRITE; +/*!40000 ALTER TABLE `Systems` DISABLE KEYS */; +INSERT INTO `Systems` VALUES ('AdvancedPermissionsMigrationComplete','true'),('AsymmetricSigningKey','{\"ecdsa_key\":{\"curve\":\"P-256\",\"x\":85473606765277885426098572272657839969684858397331487822403961213130481697183,\"y\":21768024169009006215752583806332445525165014299802801588411746356748078619048,\"d\":77856411969234342853943455407675564464050187128050756722674285242344366590495}}'),('DiagnosticId','8a6b57ugyigti8aqbmzjqixgoe'),('EmojisPermissionsMigrationComplete','true'),('LastSecurityTime','1552023388297'),('Version','5.0.0'); +/*!40000 ALTER TABLE `Systems` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `TeamMembers` +-- + +DROP TABLE IF EXISTS `TeamMembers`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `TeamMembers` ( + `TeamId` varchar(26) NOT NULL, + `UserId` varchar(26) NOT NULL, + `Roles` varchar(64) DEFAULT NULL, + `DeleteAt` bigint(20) DEFAULT NULL, + `SchemeUser` tinyint(4) DEFAULT NULL, + `SchemeAdmin` tinyint(4) DEFAULT NULL, + PRIMARY KEY (`TeamId`,`UserId`), + KEY `idx_teammembers_team_id` (`TeamId`), + KEY `idx_teammembers_user_id` (`UserId`), + KEY `idx_teammembers_delete_at` (`DeleteAt`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `TeamMembers` +-- + +LOCK TABLES `TeamMembers` WRITE; +/*!40000 ALTER TABLE `TeamMembers` DISABLE KEYS */; +/*!40000 ALTER TABLE `TeamMembers` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `Teams` +-- + +DROP TABLE IF EXISTS `Teams`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `Teams` ( + `Id` varchar(26) NOT NULL, + `CreateAt` bigint(20) DEFAULT NULL, + `UpdateAt` bigint(20) DEFAULT NULL, + `DeleteAt` bigint(20) DEFAULT NULL, + `DisplayName` varchar(64) DEFAULT NULL, + `Name` varchar(64) DEFAULT NULL, + `Description` varchar(255) DEFAULT NULL, + `Email` varchar(128) DEFAULT NULL, + `Type` varchar(255) DEFAULT NULL, + `CompanyName` varchar(64) DEFAULT NULL, + `AllowedDomains` text, + `InviteId` varchar(32) DEFAULT NULL, + `AllowOpenInvite` tinyint(1) DEFAULT NULL, + `LastTeamIconUpdate` bigint(20) DEFAULT NULL, + `SchemeId` varchar(255) DEFAULT NULL, + PRIMARY KEY (`Id`), + UNIQUE KEY `Name` (`Name`), + KEY `idx_teams_name` (`Name`), + KEY `idx_teams_invite_id` (`InviteId`), + KEY `idx_teams_update_at` (`UpdateAt`), + KEY `idx_teams_create_at` (`CreateAt`), + KEY `idx_teams_delete_at` (`DeleteAt`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `Teams` +-- + +LOCK TABLES `Teams` WRITE; +/*!40000 ALTER TABLE `Teams` DISABLE KEYS */; +/*!40000 ALTER TABLE `Teams` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `Tokens` +-- + +DROP TABLE IF EXISTS `Tokens`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `Tokens` ( + `Token` varchar(64) NOT NULL, + `CreateAt` bigint(20) DEFAULT NULL, + `Type` varchar(64) DEFAULT NULL, + `Extra` varchar(128) DEFAULT NULL, + PRIMARY KEY (`Token`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `Tokens` +-- + +LOCK TABLES `Tokens` WRITE; +/*!40000 ALTER TABLE `Tokens` DISABLE KEYS */; +/*!40000 ALTER TABLE `Tokens` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `UserAccessTokens` +-- + +DROP TABLE IF EXISTS `UserAccessTokens`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `UserAccessTokens` ( + `Id` varchar(26) NOT NULL, + `Token` varchar(26) DEFAULT NULL, + `UserId` varchar(26) DEFAULT NULL, + `Description` text, + `IsActive` tinyint(1) DEFAULT NULL, + PRIMARY KEY (`Id`), + UNIQUE KEY `Token` (`Token`), + KEY `idx_user_access_tokens_token` (`Token`), + KEY `idx_user_access_tokens_user_id` (`UserId`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `UserAccessTokens` +-- + +LOCK TABLES `UserAccessTokens` WRITE; +/*!40000 ALTER TABLE `UserAccessTokens` DISABLE KEYS */; +/*!40000 ALTER TABLE `UserAccessTokens` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `Users` +-- + +DROP TABLE IF EXISTS `Users`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `Users` ( + `Id` varchar(26) NOT NULL, + `CreateAt` bigint(20) DEFAULT NULL, + `UpdateAt` bigint(20) DEFAULT NULL, + `DeleteAt` bigint(20) DEFAULT NULL, + `Username` varchar(64) DEFAULT NULL, + `Password` varchar(128) DEFAULT NULL, + `AuthData` varchar(128) DEFAULT NULL, + `AuthService` varchar(32) DEFAULT NULL, + `Email` varchar(128) DEFAULT NULL, + `EmailVerified` tinyint(1) DEFAULT NULL, + `Nickname` varchar(64) DEFAULT NULL, + `FirstName` varchar(64) DEFAULT NULL, + `LastName` varchar(64) DEFAULT NULL, + `Position` varchar(128) DEFAULT NULL, + `Roles` text, + `AllowMarketing` tinyint(1) DEFAULT NULL, + `Props` text, + `NotifyProps` text, + `LastPasswordUpdate` bigint(20) DEFAULT NULL, + `LastPictureUpdate` bigint(20) DEFAULT NULL, + `FailedAttempts` int(11) DEFAULT NULL, + `Locale` varchar(5) DEFAULT NULL, + `Timezone` text, + `MfaActive` tinyint(1) DEFAULT NULL, + `MfaSecret` varchar(128) DEFAULT NULL, + PRIMARY KEY (`Id`), + UNIQUE KEY `Username` (`Username`), + UNIQUE KEY `AuthData` (`AuthData`), + UNIQUE KEY `Email` (`Email`), + KEY `idx_users_email` (`Email`), + KEY `idx_users_update_at` (`UpdateAt`), + KEY `idx_users_create_at` (`CreateAt`), + KEY `idx_users_delete_at` (`DeleteAt`), + FULLTEXT KEY `idx_users_all_txt` (`Username`,`FirstName`,`LastName`,`Nickname`,`Email`), + FULLTEXT KEY `idx_users_all_no_full_name_txt` (`Username`,`Nickname`,`Email`), + FULLTEXT KEY `idx_users_names_txt` (`Username`,`FirstName`,`LastName`,`Nickname`), + FULLTEXT KEY `idx_users_names_no_full_name_txt` (`Username`,`Nickname`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `Users` +-- + +LOCK TABLES `Users` WRITE; +/*!40000 ALTER TABLE `Users` DISABLE KEYS */; +/*!40000 ALTER TABLE `Users` ENABLE KEYS */; +UNLOCK TABLES; +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + +-- Dump completed on 2019-03-08 11:06:52 diff --git a/scripts/mattermost-postgresql-5.0.sql b/scripts/mattermost-postgresql-5.0.sql new file mode 100644 index 0000000000..b2abb5e9e6 --- /dev/null +++ b/scripts/mattermost-postgresql-5.0.sql @@ -0,0 +1,1816 @@ +-- +-- PostgreSQL database dump +-- + +SET statement_timeout = 0; +SET lock_timeout = 0; +SET client_encoding = 'UTF8'; +SET standard_conforming_strings = on; +SELECT pg_catalog.set_config('search_path', '', false); +SET check_function_bodies = false; +SET client_min_messages = warning; + +-- +-- Name: plpgsql; Type: EXTENSION; Schema: -; Owner: +-- + +CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog; + + +-- +-- Name: EXTENSION plpgsql; Type: COMMENT; Schema: -; Owner: +-- + +COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language'; + + +SET default_tablespace = ''; + +SET default_with_oids = false; + +-- +-- Name: audits; Type: TABLE; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE TABLE public.audits ( + id character varying(26) NOT NULL, + createat bigint, + userid character varying(26), + action character varying(512), + extrainfo character varying(1024), + ipaddress character varying(64), + sessionid character varying(26) +); + + +ALTER TABLE public.audits OWNER TO mmuser; + +-- +-- Name: channelmemberhistory; Type: TABLE; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE TABLE public.channelmemberhistory ( + channelid character varying(26) NOT NULL, + userid character varying(26) NOT NULL, + jointime bigint NOT NULL, + leavetime bigint +); + + +ALTER TABLE public.channelmemberhistory OWNER TO mmuser; + +-- +-- Name: channelmembers; Type: TABLE; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE TABLE public.channelmembers ( + channelid character varying(26) NOT NULL, + userid character varying(26) NOT NULL, + roles character varying(64), + lastviewedat bigint, + msgcount bigint, + mentioncount bigint, + notifyprops character varying(2000), + lastupdateat bigint, + schemeuser boolean, + schemeadmin boolean +); + + +ALTER TABLE public.channelmembers OWNER TO mmuser; + +-- +-- Name: channels; Type: TABLE; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE TABLE public.channels ( + id character varying(26) NOT NULL, + createat bigint, + updateat bigint, + deleteat bigint, + teamid character varying(26), + type character varying(1), + displayname character varying(64), + name character varying(64), + header character varying(1024), + purpose character varying(250), + lastpostat bigint, + totalmsgcount bigint, + extraupdateat bigint, + creatorid character varying(26), + schemeid character varying(26) +); + + +ALTER TABLE public.channels OWNER TO mmuser; + +-- +-- Name: clusterdiscovery; Type: TABLE; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE TABLE public.clusterdiscovery ( + id character varying(26) NOT NULL, + type character varying(64), + clustername character varying(64), + hostname character varying(512), + gossipport integer, + port integer, + createat bigint, + lastpingat bigint +); + + +ALTER TABLE public.clusterdiscovery OWNER TO mmuser; + +-- +-- Name: commands; Type: TABLE; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE TABLE public.commands ( + id character varying(26) NOT NULL, + token character varying(26), + createat bigint, + updateat bigint, + deleteat bigint, + creatorid character varying(26), + teamid character varying(26), + trigger character varying(128), + method character varying(1), + username character varying(64), + iconurl character varying(1024), + autocomplete boolean, + autocompletedesc character varying(1024), + autocompletehint character varying(1024), + displayname character varying(64), + description character varying(128), + url character varying(1024) +); + + +ALTER TABLE public.commands OWNER TO mmuser; + +-- +-- Name: commandwebhooks; Type: TABLE; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE TABLE public.commandwebhooks ( + id character varying(26) NOT NULL, + createat bigint, + commandid character varying(26), + userid character varying(26), + channelid character varying(26), + rootid character varying(26), + parentid character varying(26), + usecount integer +); + + +ALTER TABLE public.commandwebhooks OWNER TO mmuser; + +-- +-- Name: compliances; Type: TABLE; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE TABLE public.compliances ( + id character varying(26) NOT NULL, + createat bigint, + userid character varying(26), + status character varying(64), + count integer, + "desc" character varying(512), + type character varying(64), + startat bigint, + endat bigint, + keywords character varying(512), + emails character varying(1024) +); + + +ALTER TABLE public.compliances OWNER TO mmuser; + +-- +-- Name: emoji; Type: TABLE; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE TABLE public.emoji ( + id character varying(26) NOT NULL, + createat bigint, + updateat bigint, + deleteat bigint, + creatorid character varying(26), + name character varying(64) +); + + +ALTER TABLE public.emoji OWNER TO mmuser; + +-- +-- Name: fileinfo; Type: TABLE; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE TABLE public.fileinfo ( + id character varying(26) NOT NULL, + creatorid character varying(26), + postid character varying(26), + createat bigint, + updateat bigint, + deleteat bigint, + path character varying(512), + thumbnailpath character varying(512), + previewpath character varying(512), + name character varying(256), + extension character varying(64), + size bigint, + mimetype character varying(256), + width integer, + height integer, + haspreviewimage boolean +); + + +ALTER TABLE public.fileinfo OWNER TO mmuser; + +-- +-- Name: incomingwebhooks; Type: TABLE; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE TABLE public.incomingwebhooks ( + id character varying(26) NOT NULL, + createat bigint, + updateat bigint, + deleteat bigint, + userid character varying(26), + channelid character varying(26), + teamid character varying(26), + displayname character varying(64), + description character varying(128), + username text, + iconurl text, + channellocked boolean +); + + +ALTER TABLE public.incomingwebhooks OWNER TO mmuser; + +-- +-- Name: jobs; Type: TABLE; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE TABLE public.jobs ( + id character varying(26) NOT NULL, + type character varying(32), + priority bigint, + createat bigint, + startat bigint, + lastactivityat bigint, + status character varying(32), + progress bigint, + data character varying(1024) +); + + +ALTER TABLE public.jobs OWNER TO mmuser; + +-- +-- Name: licenses; Type: TABLE; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE TABLE public.licenses ( + id character varying(26) NOT NULL, + createat bigint, + bytes character varying(10000) +); + + +ALTER TABLE public.licenses OWNER TO mmuser; + +-- +-- Name: oauthaccessdata; Type: TABLE; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE TABLE public.oauthaccessdata ( + clientid character varying(26), + userid character varying(26), + token character varying(26) NOT NULL, + refreshtoken character varying(26), + redirecturi character varying(256), + expiresat bigint, + scope character varying(128) +); + + +ALTER TABLE public.oauthaccessdata OWNER TO mmuser; + +-- +-- Name: oauthapps; Type: TABLE; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE TABLE public.oauthapps ( + id character varying(26) NOT NULL, + creatorid character varying(26), + createat bigint, + updateat bigint, + clientsecret character varying(128), + name character varying(64), + description character varying(512), + iconurl character varying(512), + callbackurls character varying(1024), + homepage character varying(256), + istrusted boolean +); + + +ALTER TABLE public.oauthapps OWNER TO mmuser; + +-- +-- Name: oauthauthdata; Type: TABLE; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE TABLE public.oauthauthdata ( + clientid character varying(26), + userid character varying(26), + code character varying(128) NOT NULL, + expiresin integer, + createat bigint, + redirecturi character varying(256), + state character varying(1024), + scope character varying(128) +); + + +ALTER TABLE public.oauthauthdata OWNER TO mmuser; + +-- +-- Name: outgoingwebhooks; Type: TABLE; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE TABLE public.outgoingwebhooks ( + id character varying(26) NOT NULL, + token character varying(26), + createat bigint, + updateat bigint, + deleteat bigint, + creatorid character varying(26), + channelid character varying(26), + teamid character varying(26), + triggerwords character varying(1024), + triggerwhen integer, + callbackurls character varying(1024), + displayname character varying(64), + description character varying(128), + contenttype character varying(128) +); + + +ALTER TABLE public.outgoingwebhooks OWNER TO mmuser; + +-- +-- Name: pluginkeyvaluestore; Type: TABLE; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE TABLE public.pluginkeyvaluestore ( + pluginid character varying(190) NOT NULL, + pkey character varying(50) NOT NULL, + pvalue bytea +); + + +ALTER TABLE public.pluginkeyvaluestore OWNER TO mmuser; + +-- +-- Name: posts; Type: TABLE; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE TABLE public.posts ( + id character varying(26) NOT NULL, + createat bigint, + updateat bigint, + editat bigint, + deleteat bigint, + ispinned boolean, + userid character varying(26), + channelid character varying(26), + rootid character varying(26), + parentid character varying(26), + originalid character varying(26), + message character varying(65535), + type character varying(26), + props character varying(8000), + hashtags character varying(1000), + filenames character varying(4000), + fileids character varying(150), + hasreactions boolean +); + + +ALTER TABLE public.posts OWNER TO mmuser; + +-- +-- Name: preferences; Type: TABLE; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE TABLE public.preferences ( + userid character varying(26) NOT NULL, + category character varying(32) NOT NULL, + name character varying(32) NOT NULL, + value character varying(2000) +); + + +ALTER TABLE public.preferences OWNER TO mmuser; + +-- +-- Name: reactions; Type: TABLE; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE TABLE public.reactions ( + userid character varying(26) NOT NULL, + postid character varying(26) NOT NULL, + emojiname character varying(64) NOT NULL, + createat bigint +); + + +ALTER TABLE public.reactions OWNER TO mmuser; + +-- +-- Name: roles; Type: TABLE; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE TABLE public.roles ( + id character varying(26) NOT NULL, + name character varying(64), + displayname character varying(128), + description character varying(1024), + createat bigint, + updateat bigint, + deleteat bigint, + permissions character varying(4096), + schememanaged boolean, + builtin boolean +); + + +ALTER TABLE public.roles OWNER TO mmuser; + +-- +-- Name: schemes; Type: TABLE; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE TABLE public.schemes ( + id character varying(26) NOT NULL, + name character varying(64), + displayname character varying(128), + description character varying(1024), + createat bigint, + updateat bigint, + deleteat bigint, + scope character varying(32), + defaultteamadminrole character varying(64), + defaultteamuserrole character varying(64), + defaultchanneladminrole character varying(64), + defaultchanneluserrole character varying(64) +); + + +ALTER TABLE public.schemes OWNER TO mmuser; + +-- +-- Name: sessions; Type: TABLE; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE TABLE public.sessions ( + id character varying(26) NOT NULL, + token character varying(26), + createat bigint, + expiresat bigint, + lastactivityat bigint, + userid character varying(26), + deviceid character varying(512), + roles character varying(64), + isoauth boolean, + props character varying(1000) +); + + +ALTER TABLE public.sessions OWNER TO mmuser; + +-- +-- Name: status; Type: TABLE; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE TABLE public.status ( + userid character varying(26) NOT NULL, + status character varying(32), + manual boolean, + lastactivityat bigint +); + + +ALTER TABLE public.status OWNER TO mmuser; + +-- +-- Name: systems; Type: TABLE; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE TABLE public.systems ( + name character varying(64) NOT NULL, + value character varying(1024) +); + + +ALTER TABLE public.systems OWNER TO mmuser; + +-- +-- Name: teammembers; Type: TABLE; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE TABLE public.teammembers ( + teamid character varying(26) NOT NULL, + userid character varying(26) NOT NULL, + roles character varying(64), + deleteat bigint, + schemeuser boolean, + schemeadmin boolean +); + + +ALTER TABLE public.teammembers OWNER TO mmuser; + +-- +-- Name: teams; Type: TABLE; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE TABLE public.teams ( + id character varying(26) NOT NULL, + createat bigint, + updateat bigint, + deleteat bigint, + displayname character varying(64), + name character varying(64), + description character varying(255), + email character varying(128), + type text, + companyname character varying(64), + alloweddomains character varying(500), + inviteid character varying(32), + allowopeninvite boolean, + lastteamiconupdate bigint, + schemeid text +); + + +ALTER TABLE public.teams OWNER TO mmuser; + +-- +-- Name: tokens; Type: TABLE; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE TABLE public.tokens ( + token character varying(64) NOT NULL, + createat bigint, + type character varying(64), + extra character varying(128) +); + + +ALTER TABLE public.tokens OWNER TO mmuser; + +-- +-- Name: useraccesstokens; Type: TABLE; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE TABLE public.useraccesstokens ( + id character varying(26) NOT NULL, + token character varying(26), + userid character varying(26), + description character varying(512), + isactive boolean +); + + +ALTER TABLE public.useraccesstokens OWNER TO mmuser; + +-- +-- Name: users; Type: TABLE; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE TABLE public.users ( + id character varying(26) NOT NULL, + createat bigint, + updateat bigint, + deleteat bigint, + username character varying(64), + password character varying(128), + authdata character varying(128), + authservice character varying(32), + email character varying(128), + emailverified boolean, + nickname character varying(64), + firstname character varying(64), + lastname character varying(64), + "position" character varying(128), + roles character varying(256), + allowmarketing boolean, + props character varying(4000), + notifyprops character varying(2000), + lastpasswordupdate bigint, + lastpictureupdate bigint, + failedattempts integer, + locale character varying(5), + timezone character varying(256), + mfaactive boolean, + mfasecret character varying(128) +); + + +ALTER TABLE public.users OWNER TO mmuser; + +-- +-- Data for Name: audits; Type: TABLE DATA; Schema: public; Owner: mmuser +-- + +COPY public.audits (id, createat, userid, action, extrainfo, ipaddress, sessionid) FROM stdin; +\. + + +-- +-- Data for Name: channelmemberhistory; Type: TABLE DATA; Schema: public; Owner: mmuser +-- + +COPY public.channelmemberhistory (channelid, userid, jointime, leavetime) FROM stdin; +\. + + +-- +-- Data for Name: channelmembers; Type: TABLE DATA; Schema: public; Owner: mmuser +-- + +COPY public.channelmembers (channelid, userid, roles, lastviewedat, msgcount, mentioncount, notifyprops, lastupdateat, schemeuser, schemeadmin) FROM stdin; +\. + + +-- +-- Data for Name: channels; Type: TABLE DATA; Schema: public; Owner: mmuser +-- + +COPY public.channels (id, createat, updateat, deleteat, teamid, type, displayname, name, header, purpose, lastpostat, totalmsgcount, extraupdateat, creatorid, schemeid) FROM stdin; +\. + + +-- +-- Data for Name: clusterdiscovery; Type: TABLE DATA; Schema: public; Owner: mmuser +-- + +COPY public.clusterdiscovery (id, type, clustername, hostname, gossipport, port, createat, lastpingat) FROM stdin; +\. + + +-- +-- Data for Name: commands; Type: TABLE DATA; Schema: public; Owner: mmuser +-- + +COPY public.commands (id, token, createat, updateat, deleteat, creatorid, teamid, trigger, method, username, iconurl, autocomplete, autocompletedesc, autocompletehint, displayname, description, url) FROM stdin; +\. + + +-- +-- Data for Name: commandwebhooks; Type: TABLE DATA; Schema: public; Owner: mmuser +-- + +COPY public.commandwebhooks (id, createat, commandid, userid, channelid, rootid, parentid, usecount) FROM stdin; +\. + + +-- +-- Data for Name: compliances; Type: TABLE DATA; Schema: public; Owner: mmuser +-- + +COPY public.compliances (id, createat, userid, status, count, "desc", type, startat, endat, keywords, emails) FROM stdin; +\. + + +-- +-- Data for Name: emoji; Type: TABLE DATA; Schema: public; Owner: mmuser +-- + +COPY public.emoji (id, createat, updateat, deleteat, creatorid, name) FROM stdin; +\. + + +-- +-- Data for Name: fileinfo; Type: TABLE DATA; Schema: public; Owner: mmuser +-- + +COPY public.fileinfo (id, creatorid, postid, createat, updateat, deleteat, path, thumbnailpath, previewpath, name, extension, size, mimetype, width, height, haspreviewimage) FROM stdin; +\. + + +-- +-- Data for Name: incomingwebhooks; Type: TABLE DATA; Schema: public; Owner: mmuser +-- + +COPY public.incomingwebhooks (id, createat, updateat, deleteat, userid, channelid, teamid, displayname, description, username, iconurl, channellocked) FROM stdin; +\. + + +-- +-- Data for Name: jobs; Type: TABLE DATA; Schema: public; Owner: mmuser +-- + +COPY public.jobs (id, type, priority, createat, startat, lastactivityat, status, progress, data) FROM stdin; +\. + + +-- +-- Data for Name: licenses; Type: TABLE DATA; Schema: public; Owner: mmuser +-- + +COPY public.licenses (id, createat, bytes) FROM stdin; +\. + + +-- +-- Data for Name: oauthaccessdata; Type: TABLE DATA; Schema: public; Owner: mmuser +-- + +COPY public.oauthaccessdata (clientid, userid, token, refreshtoken, redirecturi, expiresat, scope) FROM stdin; +\. + + +-- +-- Data for Name: oauthapps; Type: TABLE DATA; Schema: public; Owner: mmuser +-- + +COPY public.oauthapps (id, creatorid, createat, updateat, clientsecret, name, description, iconurl, callbackurls, homepage, istrusted) FROM stdin; +\. + + +-- +-- Data for Name: oauthauthdata; Type: TABLE DATA; Schema: public; Owner: mmuser +-- + +COPY public.oauthauthdata (clientid, userid, code, expiresin, createat, redirecturi, state, scope) FROM stdin; +\. + + +-- +-- Data for Name: outgoingwebhooks; Type: TABLE DATA; Schema: public; Owner: mmuser +-- + +COPY public.outgoingwebhooks (id, token, createat, updateat, deleteat, creatorid, channelid, teamid, triggerwords, triggerwhen, callbackurls, displayname, description, contenttype) FROM stdin; +\. + + +-- +-- Data for Name: pluginkeyvaluestore; Type: TABLE DATA; Schema: public; Owner: mmuser +-- + +COPY public.pluginkeyvaluestore (pluginid, pkey, pvalue) FROM stdin; +\. + + +-- +-- Data for Name: posts; Type: TABLE DATA; Schema: public; Owner: mmuser +-- + +COPY public.posts (id, createat, updateat, editat, deleteat, ispinned, userid, channelid, rootid, parentid, originalid, message, type, props, hashtags, filenames, fileids, hasreactions) FROM stdin; +\. + + +-- +-- Data for Name: preferences; Type: TABLE DATA; Schema: public; Owner: mmuser +-- + +COPY public.preferences (userid, category, name, value) FROM stdin; +\. + + +-- +-- Data for Name: reactions; Type: TABLE DATA; Schema: public; Owner: mmuser +-- + +COPY public.reactions (userid, postid, emojiname, createat) FROM stdin; +\. + + +-- +-- Data for Name: roles; Type: TABLE DATA; Schema: public; Owner: mmuser +-- + +COPY public.roles (id, name, displayname, description, createat, updateat, deleteat, permissions, schememanaged, builtin) FROM stdin; +aap88jdt37dgdgkek1c7dq69ua team_post_all authentication.roles.team_post_all.name authentication.roles.team_post_all.description 1552912816230 1552912816230 0 create_post f t +masesduwobn95dqoyba5xmtz5o team_post_all_public authentication.roles.team_post_all_public.name authentication.roles.team_post_all_public.description 1552912816258 1552912816258 0 create_post_public f t +ufy3o8h1y3g4bgqeyw7yb6hrwe system_post_all authentication.roles.system_post_all.name authentication.roles.system_post_all.description 1552912816269 1552912816269 0 create_post f t +7ptq38iy4br59q8y4zt9mm3zwy system_post_all_public authentication.roles.system_post_all_public.name authentication.roles.system_post_all_public.description 1552912816288 1552912816288 0 create_post_public f t +wpxrpuiyo3bgdf34u7t65gcota system_user_access_token authentication.roles.system_user_access_token.name authentication.roles.system_user_access_token.description 1552912816404 1552912816404 0 create_user_access_token read_user_access_token revoke_user_access_token f t +fomn851ie3gmz8zwr87szazm6w channel_user authentication.roles.channel_user.name authentication.roles.channel_user.description 1552912816614 1552912816614 0 read_channel add_reaction remove_reaction manage_public_channel_members upload_file get_public_link create_post use_slash_commands manage_private_channel_members delete_post edit_post t t +xjxw3p6ect8bjfre7wc5jhwbqr channel_admin authentication.roles.channel_admin.name authentication.roles.channel_admin.description 1552912816669 1552912816669 0 manage_channel_roles t t +q5qjsjsn3py5mfodcirqjkhsjy team_user authentication.roles.team_user.name authentication.roles.team_user.description 1552912816680 1552912816680 0 list_team_channels join_public_channels read_public_channel view_team create_public_channel manage_public_channel_properties delete_public_channel create_private_channel manage_private_channel_properties delete_private_channel invite_user add_user_to_team t t +ntqm5c1rbjb9mrh69zagibxoxa team_admin authentication.roles.team_admin.name authentication.roles.team_admin.description 1552912816746 1552912816746 0 edit_others_posts remove_user_from_team manage_team import_team manage_team_roles manage_channel_roles manage_others_webhooks manage_slash_commands manage_others_slash_commands manage_webhooks delete_post delete_others_posts t t +ts6aqp9p6jy97jwyf6wh4f5qaa system_user authentication.roles.global_user.name authentication.roles.global_user.description 1552912816757 1552912816913 0 create_direct_channel create_group_channel permanent_delete_user create_team manage_emojis t t +twatrmjz8i8spfdyus18bm4nth system_admin authentication.roles.global_admin.name authentication.roles.global_admin.description 1552912816481 1552912816923 0 assign_system_admin_role manage_system manage_roles manage_public_channel_properties manage_public_channel_members manage_private_channel_members delete_public_channel create_public_channel manage_private_channel_properties delete_private_channel create_private_channel manage_system_wide_oauth manage_others_webhooks edit_other_users manage_oauth invite_user delete_post delete_others_posts create_team add_user_to_team list_users_without_team manage_jobs create_post_public create_post_ephemeral create_user_access_token read_user_access_token revoke_user_access_token remove_others_reactions list_team_channels join_public_channels read_public_channel view_team read_channel add_reaction remove_reaction upload_file get_public_link create_post use_slash_commands edit_others_posts remove_user_from_team manage_team import_team manage_team_roles manage_channel_roles manage_slash_commands manage_others_slash_commands manage_webhooks edit_post manage_emojis manage_others_emojis t t +\. + + +-- +-- Data for Name: schemes; Type: TABLE DATA; Schema: public; Owner: mmuser +-- + +COPY public.schemes (id, name, displayname, description, createat, updateat, deleteat, scope, defaultteamadminrole, defaultteamuserrole, defaultchanneladminrole, defaultchanneluserrole) FROM stdin; +\. + + +-- +-- Data for Name: sessions; Type: TABLE DATA; Schema: public; Owner: mmuser +-- + +COPY public.sessions (id, token, createat, expiresat, lastactivityat, userid, deviceid, roles, isoauth, props) FROM stdin; +\. + + +-- +-- Data for Name: status; Type: TABLE DATA; Schema: public; Owner: mmuser +-- + +COPY public.status (userid, status, manual, lastactivityat) FROM stdin; +\. + + +-- +-- Data for Name: systems; Type: TABLE DATA; Schema: public; Owner: mmuser +-- + +COPY public.systems (name, value) FROM stdin; +Version 5.0.0 +AsymmetricSigningKey {"ecdsa_key":{"curve":"P-256","x":50494983991025284560870211683226455202411615657166048251398890171377825517363,"y":113694733845764674468191147267904180878076486503487433150108745296643202957034,"d":85042364128488616037616885822024419913274924562562115600648814391088417875310}} +AdvancedPermissionsMigrationComplete true +EmojisPermissionsMigrationComplete true +DiagnosticId up3o75jkjbbs8dbawiwypzwrmc +LastSecurityTime 1552912819442 +\. + + +-- +-- Data for Name: teammembers; Type: TABLE DATA; Schema: public; Owner: mmuser +-- + +COPY public.teammembers (teamid, userid, roles, deleteat, schemeuser, schemeadmin) FROM stdin; +\. + + +-- +-- Data for Name: teams; Type: TABLE DATA; Schema: public; Owner: mmuser +-- + +COPY public.teams (id, createat, updateat, deleteat, displayname, name, description, email, type, companyname, alloweddomains, inviteid, allowopeninvite, lastteamiconupdate, schemeid) FROM stdin; +\. + + +-- +-- Data for Name: tokens; Type: TABLE DATA; Schema: public; Owner: mmuser +-- + +COPY public.tokens (token, createat, type, extra) FROM stdin; +\. + + +-- +-- Data for Name: useraccesstokens; Type: TABLE DATA; Schema: public; Owner: mmuser +-- + +COPY public.useraccesstokens (id, token, userid, description, isactive) FROM stdin; +\. + + +-- +-- Data for Name: users; Type: TABLE DATA; Schema: public; Owner: mmuser +-- + +COPY public.users (id, createat, updateat, deleteat, username, password, authdata, authservice, email, emailverified, nickname, firstname, lastname, "position", roles, allowmarketing, props, notifyprops, lastpasswordupdate, lastpictureupdate, failedattempts, locale, timezone, mfaactive, mfasecret) FROM stdin; +\. + + +-- +-- Name: audits_pkey; Type: CONSTRAINT; Schema: public; Owner: mmuser; Tablespace: +-- + +ALTER TABLE ONLY public.audits + ADD CONSTRAINT audits_pkey PRIMARY KEY (id); + + +-- +-- Name: channelmemberhistory_pkey; Type: CONSTRAINT; Schema: public; Owner: mmuser; Tablespace: +-- + +ALTER TABLE ONLY public.channelmemberhistory + ADD CONSTRAINT channelmemberhistory_pkey PRIMARY KEY (channelid, userid, jointime); + + +-- +-- Name: channelmembers_pkey; Type: CONSTRAINT; Schema: public; Owner: mmuser; Tablespace: +-- + +ALTER TABLE ONLY public.channelmembers + ADD CONSTRAINT channelmembers_pkey PRIMARY KEY (channelid, userid); + + +-- +-- Name: channels_name_teamid_key; Type: CONSTRAINT; Schema: public; Owner: mmuser; Tablespace: +-- + +ALTER TABLE ONLY public.channels + ADD CONSTRAINT channels_name_teamid_key UNIQUE (name, teamid); + + +-- +-- Name: channels_pkey; Type: CONSTRAINT; Schema: public; Owner: mmuser; Tablespace: +-- + +ALTER TABLE ONLY public.channels + ADD CONSTRAINT channels_pkey PRIMARY KEY (id); + + +-- +-- Name: clusterdiscovery_pkey; Type: CONSTRAINT; Schema: public; Owner: mmuser; Tablespace: +-- + +ALTER TABLE ONLY public.clusterdiscovery + ADD CONSTRAINT clusterdiscovery_pkey PRIMARY KEY (id); + + +-- +-- Name: commands_pkey; Type: CONSTRAINT; Schema: public; Owner: mmuser; Tablespace: +-- + +ALTER TABLE ONLY public.commands + ADD CONSTRAINT commands_pkey PRIMARY KEY (id); + + +-- +-- Name: commandwebhooks_pkey; Type: CONSTRAINT; Schema: public; Owner: mmuser; Tablespace: +-- + +ALTER TABLE ONLY public.commandwebhooks + ADD CONSTRAINT commandwebhooks_pkey PRIMARY KEY (id); + + +-- +-- Name: compliances_pkey; Type: CONSTRAINT; Schema: public; Owner: mmuser; Tablespace: +-- + +ALTER TABLE ONLY public.compliances + ADD CONSTRAINT compliances_pkey PRIMARY KEY (id); + + +-- +-- Name: emoji_name_deleteat_key; Type: CONSTRAINT; Schema: public; Owner: mmuser; Tablespace: +-- + +ALTER TABLE ONLY public.emoji + ADD CONSTRAINT emoji_name_deleteat_key UNIQUE (name, deleteat); + + +-- +-- Name: emoji_pkey; Type: CONSTRAINT; Schema: public; Owner: mmuser; Tablespace: +-- + +ALTER TABLE ONLY public.emoji + ADD CONSTRAINT emoji_pkey PRIMARY KEY (id); + + +-- +-- Name: fileinfo_pkey; Type: CONSTRAINT; Schema: public; Owner: mmuser; Tablespace: +-- + +ALTER TABLE ONLY public.fileinfo + ADD CONSTRAINT fileinfo_pkey PRIMARY KEY (id); + + +-- +-- Name: incomingwebhooks_pkey; Type: CONSTRAINT; Schema: public; Owner: mmuser; Tablespace: +-- + +ALTER TABLE ONLY public.incomingwebhooks + ADD CONSTRAINT incomingwebhooks_pkey PRIMARY KEY (id); + + +-- +-- Name: jobs_pkey; Type: CONSTRAINT; Schema: public; Owner: mmuser; Tablespace: +-- + +ALTER TABLE ONLY public.jobs + ADD CONSTRAINT jobs_pkey PRIMARY KEY (id); + + +-- +-- Name: licenses_pkey; Type: CONSTRAINT; Schema: public; Owner: mmuser; Tablespace: +-- + +ALTER TABLE ONLY public.licenses + ADD CONSTRAINT licenses_pkey PRIMARY KEY (id); + + +-- +-- Name: oauthaccessdata_clientid_userid_key; Type: CONSTRAINT; Schema: public; Owner: mmuser; Tablespace: +-- + +ALTER TABLE ONLY public.oauthaccessdata + ADD CONSTRAINT oauthaccessdata_clientid_userid_key UNIQUE (clientid, userid); + + +-- +-- Name: oauthaccessdata_pkey; Type: CONSTRAINT; Schema: public; Owner: mmuser; Tablespace: +-- + +ALTER TABLE ONLY public.oauthaccessdata + ADD CONSTRAINT oauthaccessdata_pkey PRIMARY KEY (token); + + +-- +-- Name: oauthapps_pkey; Type: CONSTRAINT; Schema: public; Owner: mmuser; Tablespace: +-- + +ALTER TABLE ONLY public.oauthapps + ADD CONSTRAINT oauthapps_pkey PRIMARY KEY (id); + + +-- +-- Name: oauthauthdata_pkey; Type: CONSTRAINT; Schema: public; Owner: mmuser; Tablespace: +-- + +ALTER TABLE ONLY public.oauthauthdata + ADD CONSTRAINT oauthauthdata_pkey PRIMARY KEY (code); + + +-- +-- Name: outgoingwebhooks_pkey; Type: CONSTRAINT; Schema: public; Owner: mmuser; Tablespace: +-- + +ALTER TABLE ONLY public.outgoingwebhooks + ADD CONSTRAINT outgoingwebhooks_pkey PRIMARY KEY (id); + + +-- +-- Name: pluginkeyvaluestore_pkey; Type: CONSTRAINT; Schema: public; Owner: mmuser; Tablespace: +-- + +ALTER TABLE ONLY public.pluginkeyvaluestore + ADD CONSTRAINT pluginkeyvaluestore_pkey PRIMARY KEY (pluginid, pkey); + + +-- +-- Name: posts_pkey; Type: CONSTRAINT; Schema: public; Owner: mmuser; Tablespace: +-- + +ALTER TABLE ONLY public.posts + ADD CONSTRAINT posts_pkey PRIMARY KEY (id); + + +-- +-- Name: preferences_pkey; Type: CONSTRAINT; Schema: public; Owner: mmuser; Tablespace: +-- + +ALTER TABLE ONLY public.preferences + ADD CONSTRAINT preferences_pkey PRIMARY KEY (userid, category, name); + + +-- +-- Name: reactions_pkey; Type: CONSTRAINT; Schema: public; Owner: mmuser; Tablespace: +-- + +ALTER TABLE ONLY public.reactions + ADD CONSTRAINT reactions_pkey PRIMARY KEY (userid, postid, emojiname); + + +-- +-- Name: roles_name_key; Type: CONSTRAINT; Schema: public; Owner: mmuser; Tablespace: +-- + +ALTER TABLE ONLY public.roles + ADD CONSTRAINT roles_name_key UNIQUE (name); + + +-- +-- Name: roles_pkey; Type: CONSTRAINT; Schema: public; Owner: mmuser; Tablespace: +-- + +ALTER TABLE ONLY public.roles + ADD CONSTRAINT roles_pkey PRIMARY KEY (id); + + +-- +-- Name: schemes_name_key; Type: CONSTRAINT; Schema: public; Owner: mmuser; Tablespace: +-- + +ALTER TABLE ONLY public.schemes + ADD CONSTRAINT schemes_name_key UNIQUE (name); + + +-- +-- Name: schemes_pkey; Type: CONSTRAINT; Schema: public; Owner: mmuser; Tablespace: +-- + +ALTER TABLE ONLY public.schemes + ADD CONSTRAINT schemes_pkey PRIMARY KEY (id); + + +-- +-- Name: sessions_pkey; Type: CONSTRAINT; Schema: public; Owner: mmuser; Tablespace: +-- + +ALTER TABLE ONLY public.sessions + ADD CONSTRAINT sessions_pkey PRIMARY KEY (id); + + +-- +-- Name: status_pkey; Type: CONSTRAINT; Schema: public; Owner: mmuser; Tablespace: +-- + +ALTER TABLE ONLY public.status + ADD CONSTRAINT status_pkey PRIMARY KEY (userid); + + +-- +-- Name: systems_pkey; Type: CONSTRAINT; Schema: public; Owner: mmuser; Tablespace: +-- + +ALTER TABLE ONLY public.systems + ADD CONSTRAINT systems_pkey PRIMARY KEY (name); + + +-- +-- Name: teammembers_pkey; Type: CONSTRAINT; Schema: public; Owner: mmuser; Tablespace: +-- + +ALTER TABLE ONLY public.teammembers + ADD CONSTRAINT teammembers_pkey PRIMARY KEY (teamid, userid); + + +-- +-- Name: teams_name_key; Type: CONSTRAINT; Schema: public; Owner: mmuser; Tablespace: +-- + +ALTER TABLE ONLY public.teams + ADD CONSTRAINT teams_name_key UNIQUE (name); + + +-- +-- Name: teams_pkey; Type: CONSTRAINT; Schema: public; Owner: mmuser; Tablespace: +-- + +ALTER TABLE ONLY public.teams + ADD CONSTRAINT teams_pkey PRIMARY KEY (id); + + +-- +-- Name: tokens_pkey; Type: CONSTRAINT; Schema: public; Owner: mmuser; Tablespace: +-- + +ALTER TABLE ONLY public.tokens + ADD CONSTRAINT tokens_pkey PRIMARY KEY (token); + + +-- +-- Name: useraccesstokens_pkey; Type: CONSTRAINT; Schema: public; Owner: mmuser; Tablespace: +-- + +ALTER TABLE ONLY public.useraccesstokens + ADD CONSTRAINT useraccesstokens_pkey PRIMARY KEY (id); + + +-- +-- Name: useraccesstokens_token_key; Type: CONSTRAINT; Schema: public; Owner: mmuser; Tablespace: +-- + +ALTER TABLE ONLY public.useraccesstokens + ADD CONSTRAINT useraccesstokens_token_key UNIQUE (token); + + +-- +-- Name: users_authdata_key; Type: CONSTRAINT; Schema: public; Owner: mmuser; Tablespace: +-- + +ALTER TABLE ONLY public.users + ADD CONSTRAINT users_authdata_key UNIQUE (authdata); + + +-- +-- Name: users_email_key; Type: CONSTRAINT; Schema: public; Owner: mmuser; Tablespace: +-- + +ALTER TABLE ONLY public.users + ADD CONSTRAINT users_email_key UNIQUE (email); + + +-- +-- Name: users_pkey; Type: CONSTRAINT; Schema: public; Owner: mmuser; Tablespace: +-- + +ALTER TABLE ONLY public.users + ADD CONSTRAINT users_pkey PRIMARY KEY (id); + + +-- +-- Name: users_username_key; Type: CONSTRAINT; Schema: public; Owner: mmuser; Tablespace: +-- + +ALTER TABLE ONLY public.users + ADD CONSTRAINT users_username_key UNIQUE (username); + + +-- +-- Name: idx_audits_user_id; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_audits_user_id ON public.audits USING btree (userid); + + +-- +-- Name: idx_channelmembers_channel_id; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_channelmembers_channel_id ON public.channelmembers USING btree (channelid); + + +-- +-- Name: idx_channelmembers_user_id; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_channelmembers_user_id ON public.channelmembers USING btree (userid); + + +-- +-- Name: idx_channels_create_at; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_channels_create_at ON public.channels USING btree (createat); + + +-- +-- Name: idx_channels_delete_at; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_channels_delete_at ON public.channels USING btree (deleteat); + + +-- +-- Name: idx_channels_displayname_lower; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_channels_displayname_lower ON public.channels USING btree (lower((displayname)::text)); + + +-- +-- Name: idx_channels_name; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_channels_name ON public.channels USING btree (name); + + +-- +-- Name: idx_channels_name_lower; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_channels_name_lower ON public.channels USING btree (lower((name)::text)); + + +-- +-- Name: idx_channels_team_id; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_channels_team_id ON public.channels USING btree (teamid); + + +-- +-- Name: idx_channels_txt; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_channels_txt ON public.channels USING gin (to_tsvector('english'::regconfig, (((name)::text || ' '::text) || (displayname)::text))); + + +-- +-- Name: idx_channels_update_at; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_channels_update_at ON public.channels USING btree (updateat); + + +-- +-- Name: idx_command_create_at; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_command_create_at ON public.commands USING btree (createat); + + +-- +-- Name: idx_command_delete_at; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_command_delete_at ON public.commands USING btree (deleteat); + + +-- +-- Name: idx_command_team_id; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_command_team_id ON public.commands USING btree (teamid); + + +-- +-- Name: idx_command_update_at; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_command_update_at ON public.commands USING btree (updateat); + + +-- +-- Name: idx_command_webhook_create_at; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_command_webhook_create_at ON public.commandwebhooks USING btree (createat); + + +-- +-- Name: idx_emoji_create_at; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_emoji_create_at ON public.emoji USING btree (createat); + + +-- +-- Name: idx_emoji_delete_at; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_emoji_delete_at ON public.emoji USING btree (deleteat); + + +-- +-- Name: idx_emoji_name; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_emoji_name ON public.emoji USING btree (name); + + +-- +-- Name: idx_emoji_update_at; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_emoji_update_at ON public.emoji USING btree (updateat); + + +-- +-- Name: idx_fileinfo_create_at; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_fileinfo_create_at ON public.fileinfo USING btree (createat); + + +-- +-- Name: idx_fileinfo_delete_at; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_fileinfo_delete_at ON public.fileinfo USING btree (deleteat); + + +-- +-- Name: idx_fileinfo_postid_at; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_fileinfo_postid_at ON public.fileinfo USING btree (postid); + + +-- +-- Name: idx_fileinfo_update_at; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_fileinfo_update_at ON public.fileinfo USING btree (updateat); + + +-- +-- Name: idx_incoming_webhook_create_at; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_incoming_webhook_create_at ON public.incomingwebhooks USING btree (createat); + + +-- +-- Name: idx_incoming_webhook_delete_at; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_incoming_webhook_delete_at ON public.incomingwebhooks USING btree (deleteat); + + +-- +-- Name: idx_incoming_webhook_team_id; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_incoming_webhook_team_id ON public.incomingwebhooks USING btree (teamid); + + +-- +-- Name: idx_incoming_webhook_update_at; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_incoming_webhook_update_at ON public.incomingwebhooks USING btree (updateat); + + +-- +-- Name: idx_incoming_webhook_user_id; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_incoming_webhook_user_id ON public.incomingwebhooks USING btree (userid); + + +-- +-- Name: idx_jobs_type; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_jobs_type ON public.jobs USING btree (type); + + +-- +-- Name: idx_oauthaccessdata_client_id; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_oauthaccessdata_client_id ON public.oauthaccessdata USING btree (clientid); + + +-- +-- Name: idx_oauthaccessdata_refresh_token; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_oauthaccessdata_refresh_token ON public.oauthaccessdata USING btree (refreshtoken); + + +-- +-- Name: idx_oauthaccessdata_user_id; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_oauthaccessdata_user_id ON public.oauthaccessdata USING btree (userid); + + +-- +-- Name: idx_oauthapps_creator_id; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_oauthapps_creator_id ON public.oauthapps USING btree (creatorid); + + +-- +-- Name: idx_oauthauthdata_client_id; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_oauthauthdata_client_id ON public.oauthauthdata USING btree (code); + + +-- +-- Name: idx_outgoing_webhook_create_at; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_outgoing_webhook_create_at ON public.outgoingwebhooks USING btree (createat); + + +-- +-- Name: idx_outgoing_webhook_delete_at; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_outgoing_webhook_delete_at ON public.outgoingwebhooks USING btree (deleteat); + + +-- +-- Name: idx_outgoing_webhook_team_id; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_outgoing_webhook_team_id ON public.outgoingwebhooks USING btree (teamid); + + +-- +-- Name: idx_outgoing_webhook_update_at; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_outgoing_webhook_update_at ON public.outgoingwebhooks USING btree (updateat); + + +-- +-- Name: idx_posts_channel_id; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_posts_channel_id ON public.posts USING btree (channelid); + + +-- +-- Name: idx_posts_channel_id_delete_at_create_at; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_posts_channel_id_delete_at_create_at ON public.posts USING btree (channelid, deleteat, createat); + + +-- +-- Name: idx_posts_channel_id_update_at; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_posts_channel_id_update_at ON public.posts USING btree (channelid, updateat); + + +-- +-- Name: idx_posts_create_at; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_posts_create_at ON public.posts USING btree (createat); + + +-- +-- Name: idx_posts_delete_at; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_posts_delete_at ON public.posts USING btree (deleteat); + + +-- +-- Name: idx_posts_hashtags_txt; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_posts_hashtags_txt ON public.posts USING gin (to_tsvector('english'::regconfig, (hashtags)::text)); + + +-- +-- Name: idx_posts_is_pinned; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_posts_is_pinned ON public.posts USING btree (ispinned); + + +-- +-- Name: idx_posts_message_txt; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_posts_message_txt ON public.posts USING gin (to_tsvector('english'::regconfig, (message)::text)); + + +-- +-- Name: idx_posts_root_id; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_posts_root_id ON public.posts USING btree (rootid); + + +-- +-- Name: idx_posts_update_at; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_posts_update_at ON public.posts USING btree (updateat); + + +-- +-- Name: idx_posts_user_id; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_posts_user_id ON public.posts USING btree (userid); + + +-- +-- Name: idx_preferences_category; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_preferences_category ON public.preferences USING btree (category); + + +-- +-- Name: idx_preferences_name; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_preferences_name ON public.preferences USING btree (name); + + +-- +-- Name: idx_preferences_user_id; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_preferences_user_id ON public.preferences USING btree (userid); + + +-- +-- Name: idx_sessions_create_at; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_sessions_create_at ON public.sessions USING btree (createat); + + +-- +-- Name: idx_sessions_expires_at; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_sessions_expires_at ON public.sessions USING btree (expiresat); + + +-- +-- Name: idx_sessions_last_activity_at; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_sessions_last_activity_at ON public.sessions USING btree (lastactivityat); + + +-- +-- Name: idx_sessions_token; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_sessions_token ON public.sessions USING btree (token); + + +-- +-- Name: idx_sessions_user_id; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_sessions_user_id ON public.sessions USING btree (userid); + + +-- +-- Name: idx_status_status; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_status_status ON public.status USING btree (status); + + +-- +-- Name: idx_status_user_id; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_status_user_id ON public.status USING btree (userid); + + +-- +-- Name: idx_teammembers_delete_at; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_teammembers_delete_at ON public.teammembers USING btree (deleteat); + + +-- +-- Name: idx_teammembers_team_id; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_teammembers_team_id ON public.teammembers USING btree (teamid); + + +-- +-- Name: idx_teammembers_user_id; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_teammembers_user_id ON public.teammembers USING btree (userid); + + +-- +-- Name: idx_teams_create_at; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_teams_create_at ON public.teams USING btree (createat); + + +-- +-- Name: idx_teams_delete_at; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_teams_delete_at ON public.teams USING btree (deleteat); + + +-- +-- Name: idx_teams_invite_id; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_teams_invite_id ON public.teams USING btree (inviteid); + + +-- +-- Name: idx_teams_name; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_teams_name ON public.teams USING btree (name); + + +-- +-- Name: idx_teams_update_at; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_teams_update_at ON public.teams USING btree (updateat); + + +-- +-- Name: idx_user_access_tokens_token; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_user_access_tokens_token ON public.useraccesstokens USING btree (token); + + +-- +-- Name: idx_user_access_tokens_user_id; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_user_access_tokens_user_id ON public.useraccesstokens USING btree (userid); + + +-- +-- Name: idx_users_all_no_full_name_txt; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_users_all_no_full_name_txt ON public.users USING gin (to_tsvector('english'::regconfig, (((((username)::text || ' '::text) || (nickname)::text) || ' '::text) || (email)::text))); + + +-- +-- Name: idx_users_all_txt; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_users_all_txt ON public.users USING gin (to_tsvector('english'::regconfig, (((((((((username)::text || ' '::text) || (firstname)::text) || ' '::text) || (lastname)::text) || ' '::text) || (nickname)::text) || ' '::text) || (email)::text))); + + +-- +-- Name: idx_users_create_at; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_users_create_at ON public.users USING btree (createat); + + +-- +-- Name: idx_users_delete_at; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_users_delete_at ON public.users USING btree (deleteat); + + +-- +-- Name: idx_users_email; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_users_email ON public.users USING btree (email); + + +-- +-- Name: idx_users_email_lower; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_users_email_lower ON public.users USING btree (lower((email)::text)); + + +-- +-- Name: idx_users_firstname_lower; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_users_firstname_lower ON public.users USING btree (lower((firstname)::text)); + + +-- +-- Name: idx_users_lastname_lower; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_users_lastname_lower ON public.users USING btree (lower((lastname)::text)); + + +-- +-- Name: idx_users_names_no_full_name_txt; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_users_names_no_full_name_txt ON public.users USING gin (to_tsvector('english'::regconfig, (((username)::text || ' '::text) || (nickname)::text))); + + +-- +-- Name: idx_users_names_txt; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_users_names_txt ON public.users USING gin (to_tsvector('english'::regconfig, (((((((username)::text || ' '::text) || (firstname)::text) || ' '::text) || (lastname)::text) || ' '::text) || (nickname)::text))); + + +-- +-- Name: idx_users_nickname_lower; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_users_nickname_lower ON public.users USING btree (lower((nickname)::text)); + + +-- +-- Name: idx_users_update_at; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_users_update_at ON public.users USING btree (updateat); + + +-- +-- Name: idx_users_username_lower; Type: INDEX; Schema: public; Owner: mmuser; Tablespace: +-- + +CREATE INDEX idx_users_username_lower ON public.users USING btree (lower((username)::text)); + + +-- +-- Name: SCHEMA public; Type: ACL; Schema: -; Owner: mmuser +-- + +REVOKE ALL ON SCHEMA public FROM PUBLIC; +REVOKE ALL ON SCHEMA public FROM mmuser; +GRANT ALL ON SCHEMA public TO mmuser; +GRANT ALL ON SCHEMA public TO PUBLIC; + + +-- +-- PostgreSQL database dump complete +-- + diff --git a/scripts/mysql-migration-test.sh b/scripts/mysql-migration-test.sh new file mode 100755 index 0000000000..d4acbbdb26 --- /dev/null +++ b/scripts/mysql-migration-test.sh @@ -0,0 +1,39 @@ +TMPDIR=`mktemp -d 2>/dev/null || mktemp -d -t 'tmpConfigDir'` +DUMPDIR=`mktemp -d 2>/dev/null || mktemp -d -t 'dumpDir'` + +cp config/config.json $TMPDIR + +echo "Creating databases" +docker exec mattermost-mysql mysql -uroot -pmostest -e "CREATE DATABASE migrated; CREATE DATABASE latest; GRANT ALL PRIVILEGES ON migrated.* TO mmuser; GRANT ALL PRIVILEGES ON latest.* TO mmuser" + +echo "Importing mysql dump from version 5.0" +docker exec -i mattermost-mysql mysql -D migrated -uroot -pmostest < $(pwd)/scripts/mattermost-mysql-5.0.sql + +echo "Setting up config for db migration" +make ARGS="config set SqlSettings.DataSource 'mmuser:mostest@tcp(dockerhost:3306)/migrated?charset=utf8mb4,utf8&readTimeout=30s&writeTimeout=30s' --config $TMPDIR/config.json" run-cli +make ARGS="config set SqlSettings.DriverName 'mysql' --config $TMPDIR/config.json" run-cli + +echo "Running the migration" +make ARGS="version --config $TMPDIR/config.json" run-cli + +echo "Setting up config for fresh db setup" +make ARGS="config set SqlSettings.DataSource 'mmuser:mostest@tcp(dockerhost:3306)/latest?charset=utf8mb4,utf8&readTimeout=30s&writeTimeout=30s' --config $TMPDIR/config.json" run-cli + +echo "Setting up fresh db" +make ARGS="version --config $TMPDIR/config.json" run-cli + +echo "Generating dump" +docker exec mattermost-mysql mysqldump --skip-opt --no-data --compact -u root -pmostest migrated > $DUMPDIR/migrated.sql +docker exec mattermost-mysql mysqldump --skip-opt --no-data --compact -u root -pmostest latest > $DUMPDIR/latest.sql + +echo "Removing databases created for db comparison" +docker exec mattermost-mysql mysql -uroot -pmostest -e "DROP DATABASE migrated; DROP DATABASE latest" + +echo "Generating diff" +diff $DUMPDIR/migrated.sql $DUMPDIR/latest.sql > $DUMPDIR/diff.txt +diffErrorCode=$? + +if [ $diffErrorCode -eq 0 ]; then echo "Both schemas are same";else cat $DUMPDIR/diff.txt; fi +rm -rf $TMPDIR $DUMPDIR + +exit $diffErrorCode diff --git a/scripts/psql-migration-test.sh b/scripts/psql-migration-test.sh new file mode 100755 index 0000000000..cf33ff662f --- /dev/null +++ b/scripts/psql-migration-test.sh @@ -0,0 +1,39 @@ +TMPDIR=`mktemp -d 2>/dev/null || mktemp -d -t 'tmpConfigDir'` +DUMPDIR=`mktemp -d 2>/dev/null || mktemp -d -t 'dumpDir'` + +cp config/config.json $TMPDIR + +echo "Creating databases" +docker exec mattermost-postgres sh -c 'exec echo "CREATE DATABASE migrated; CREATE DATABASE latest;" | exec psql -U mmuser mattermost_test' + +echo "Importing postgres dump from version 5.0" +docker exec -i mattermost-postgres psql -U mmuser -d migrated < $(pwd)/scripts/mattermost-postgresql-5.0.sql + +echo "Setting up config for db migration" +make ARGS="config set SqlSettings.DataSource 'postgres://mmuser:mostest@dockerhost:5432/migrated?sslmode=disable&connect_timeout=10' --config $TMPDIR/config.json" run-cli +make ARGS="config set SqlSettings.DriverName 'postgres' --config $TMPDIR/config.json" run-cli + +echo "Running the migration" +make ARGS="version --config $TMPDIR/config.json" run-cli + +echo "Setting up config for fresh db setup" +make ARGS="config set SqlSettings.DataSource 'postgres://mmuser:mostest@dockerhost:5432/latest?sslmode=disable&connect_timeout=10' --config $TMPDIR/config.json" run-cli + +echo "Setting up fresh db" +make ARGS="version --config $TMPDIR/config.json" run-cli + +echo "Generating dump" +docker exec mattermost-postgres pg_dump --schema-only -d migrated -U mmuser > $DUMPDIR/migrated.sql +docker exec mattermost-postgres pg_dump --schema-only -d latest -U mmuser > $DUMPDIR/latest.sql + +echo "Removing databases created for db comparison" +docker exec mattermost-postgres sh -c 'exec echo "DROP DATABASE migrated; DROP DATABASE latest;" | exec psql -U mmuser mattermost_test' + +echo "Generating diff" +diff $DUMPDIR/migrated.sql $DUMPDIR/latest.sql > $DUMPDIR/diff.txt +diffErrorCode=$? + +if [ $diffErrorCode -eq 0 ]; then echo "Both schemas are same";else cat $DUMPDIR/diff.txt; fi +rm -rf $TMPDIR $DUMPDIR + +exit $diffErrorCode