Page MenuHomestyx hydra

No OneTemporary

diff --git a/resources/sql/patches/116.utf8-backup-first-expect-wait.sql b/resources/sql/patches/116.utf8-backup-first-expect-wait.sql
new file mode 100644
index 0000000000..9276354b92
--- /dev/null
+++ b/resources/sql/patches/116.utf8-backup-first-expect-wait.sql
@@ -0,0 +1,1169 @@
+ALTER DATABASE `phabricator_audit` COLLATE utf8_general_ci;
+
+ALTER TABLE `phabricator_audit`.`audit_comment`
+ MODIFY `phid` varchar(64) CHARACTER SET binary,
+ MODIFY `targetPHID` varchar(64) CHARACTER SET binary,
+ MODIFY `actorPHID` varchar(64) CHARACTER SET binary,
+ MODIFY `action` varchar(64) CHARACTER SET binary,
+ MODIFY `content` longtext CHARACTER SET binary;
+ALTER TABLE `phabricator_audit`.`audit_comment`
+ COLLATE utf8_general_ci,
+ MODIFY `phid` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `targetPHID` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `actorPHID` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `action` varchar(64) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `content` longtext COLLATE utf8_general_ci NOT NULL;
+
+
+
+ALTER DATABASE `phabricator_chatlog` COLLATE utf8_general_ci;
+
+ALTER TABLE `phabricator_chatlog`.`chatlog_event`
+ MODIFY `channel` varchar(64) CHARACTER SET binary,
+ MODIFY `author` varchar(64) CHARACTER SET binary,
+ MODIFY `type` varchar(4) CHARACTER SET binary,
+ MODIFY `message` longtext CHARACTER SET binary,
+ MODIFY `loggedByPHID` varchar(64) CHARACTER SET binary;
+ALTER TABLE `phabricator_chatlog`.`chatlog_event`
+ COLLATE utf8_general_ci,
+ MODIFY `channel` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `author` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `type` varchar(4) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `message` longtext COLLATE utf8_bin NOT NULL,
+ MODIFY `loggedByPHID` varchar(64) COLLATE utf8_bin NOT NULL;
+
+
+
+ALTER DATABASE `phabricator_conduit` COLLATE utf8_general_ci;
+
+ALTER TABLE `phabricator_conduit`.`conduit_certificatetoken`
+ MODIFY `userPHID` varchar(64) CHARACTER SET binary,
+ MODIFY `token` varchar(64) CHARACTER SET binary;
+ALTER TABLE `phabricator_conduit`.`conduit_certificatetoken`
+ COLLATE utf8_general_ci,
+ MODIFY `userPHID` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `token` varchar(64) COLLATE utf8_general_ci;
+
+ALTER TABLE `phabricator_conduit`.`conduit_connectionlog`
+ MODIFY `client` varchar(255) CHARACTER SET binary,
+ MODIFY `clientVersion` varchar(255) CHARACTER SET binary,
+ MODIFY `clientDescription` varchar(255) CHARACTER SET binary,
+ MODIFY `username` varchar(255) CHARACTER SET binary;
+ALTER TABLE `phabricator_conduit`.`conduit_connectionlog`
+ COLLATE utf8_general_ci,
+ MODIFY `client` varchar(255) COLLATE utf8_general_ci,
+ MODIFY `clientVersion` varchar(255) COLLATE utf8_general_ci,
+ MODIFY `clientDescription` varchar(255) COLLATE utf8_general_ci,
+ MODIFY `username` varchar(255) COLLATE utf8_general_ci;
+
+ALTER TABLE `phabricator_conduit`.`conduit_methodcalllog`
+ MODIFY `method` varchar(255) CHARACTER SET binary,
+ MODIFY `error` varchar(255) CHARACTER SET binary;
+ALTER TABLE `phabricator_conduit`.`conduit_methodcalllog`
+ COLLATE utf8_general_ci,
+ MODIFY `method` varchar(255) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `error` varchar(255) COLLATE utf8_general_ci NOT NULL;
+
+
+
+ALTER DATABASE `phabricator_countdown` COLLATE utf8_general_ci;
+
+ALTER TABLE `phabricator_countdown`.`countdown_timer`
+ MODIFY `title` varchar(255) CHARACTER SET binary,
+ MODIFY `authorPHID` varchar(64) CHARACTER SET binary;
+ALTER TABLE `phabricator_countdown`.`countdown_timer`
+ COLLATE utf8_general_ci,
+ MODIFY `title` varchar(255) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `authorPHID` varchar(64) COLLATE utf8_bin NOT NULL;
+
+
+
+ALTER DATABASE `phabricator_daemon` COLLATE utf8_general_ci;
+
+ALTER TABLE `phabricator_daemon`.`daemon_log`
+ MODIFY `daemon` varchar(255) CHARACTER SET binary,
+ MODIFY `host` varchar(255) CHARACTER SET binary,
+ MODIFY `argv` varchar(512) CHARACTER SET binary;
+ALTER TABLE `phabricator_daemon`.`daemon_log`
+ COLLATE utf8_general_ci,
+ MODIFY `daemon` varchar(255) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `host` varchar(255) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `argv` varchar(512) COLLATE utf8_general_ci NOT NULL;
+
+ALTER TABLE `phabricator_daemon`.`daemon_logevent`
+ MODIFY `logType` varchar(4) CHARACTER SET binary,
+ MODIFY `message` longtext CHARACTER SET binary;
+ALTER TABLE `phabricator_daemon`.`daemon_logevent`
+ COLLATE utf8_general_ci,
+ MODIFY `logType` varchar(4) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `message` longtext COLLATE utf8_bin NOT NULL;
+
+
+
+ALTER DATABASE `phabricator_differential` COLLATE utf8_general_ci;
+
+ALTER TABLE `phabricator_differential`.`differential_affectedpath`
+ COLLATE utf8_general_ci;
+
+ALTER TABLE `phabricator_differential`.`differential_auxiliaryfield`
+ MODIFY `revisionPHID` varchar(64) CHARACTER SET binary,
+ MODIFY `name` varchar(32) CHARACTER SET binary,
+ MODIFY `value` longtext CHARACTER SET binary;
+ALTER TABLE `phabricator_differential`.`differential_auxiliaryfield`
+ COLLATE utf8_general_ci,
+ MODIFY `revisionPHID` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `name` varchar(32) COLLATE utf8_bin NOT NULL,
+ MODIFY `value` longtext COLLATE utf8_bin NOT NULL;
+
+ALTER TABLE `phabricator_differential`.`differential_changeset`
+ MODIFY `oldFile` varchar(255) CHARACTER SET binary,
+ MODIFY `filename` varchar(255) CHARACTER SET binary,
+ MODIFY `awayPaths` longtext CHARACTER SET binary,
+ MODIFY `metadata` longtext CHARACTER SET binary,
+ MODIFY `oldProperties` longtext CHARACTER SET binary,
+ MODIFY `newProperties` longtext CHARACTER SET binary;
+ALTER TABLE `phabricator_differential`.`differential_changeset`
+ COLLATE utf8_general_ci,
+ MODIFY `oldFile` varchar(255) COLLATE utf8_general_ci,
+ MODIFY `filename` varchar(255) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `awayPaths` longtext COLLATE utf8_bin,
+ MODIFY `metadata` longtext COLLATE utf8_bin,
+ MODIFY `oldProperties` longtext COLLATE utf8_bin,
+ MODIFY `newProperties` longtext COLLATE utf8_bin;
+
+ALTER TABLE `phabricator_differential`.`differential_changeset_parse_cache`
+ MODIFY `cache` longtext CHARACTER SET binary;
+ALTER TABLE `phabricator_differential`.`differential_changeset_parse_cache`
+ COLLATE utf8_general_ci,
+ MODIFY `cache` longtext COLLATE utf8_bin NOT NULL;
+
+ALTER TABLE `phabricator_differential`.`differential_comment`
+ MODIFY `authorPHID` varchar(64) CHARACTER SET binary,
+ MODIFY `action` varchar(64) CHARACTER SET binary,
+ MODIFY `content` longtext CHARACTER SET binary,
+ MODIFY `cache` longtext CHARACTER SET binary,
+ MODIFY `metadata` longtext CHARACTER SET binary,
+ MODIFY `contentSource` varchar(255) CHARACTER SET binary;
+ALTER TABLE `phabricator_differential`.`differential_comment`
+ COLLATE utf8_general_ci,
+ MODIFY `authorPHID` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `action` varchar(64) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `content` longtext COLLATE utf8_bin NOT NULL,
+ MODIFY `cache` longtext COLLATE utf8_bin,
+ MODIFY `metadata` longtext COLLATE utf8_bin NOT NULL,
+ MODIFY `contentSource` varchar(255) COLLATE utf8_general_ci;
+
+ALTER TABLE `phabricator_differential`.`differential_commit`
+ MODIFY `commitPHID` varchar(64) CHARACTER SET binary;
+ALTER TABLE `phabricator_differential`.`differential_commit`
+ COLLATE utf8_general_ci,
+ MODIFY `commitPHID` varchar(64) COLLATE utf8_bin NOT NULL;
+
+ALTER TABLE `phabricator_differential`.`differential_diff`
+ MODIFY `authorPHID` varchar(64) CHARACTER SET binary,
+ MODIFY `sourceMachine` varchar(255) CHARACTER SET binary,
+ MODIFY `sourcePath` varchar(255) CHARACTER SET binary,
+ MODIFY `sourceControlSystem` varchar(64) CHARACTER SET binary,
+ MODIFY `sourceControlBaseRevision` varchar(255) CHARACTER SET binary,
+ MODIFY `sourceControlPath` varchar(255) CHARACTER SET binary,
+ MODIFY `branch` varchar(255) CHARACTER SET binary,
+ MODIFY `arcanistProjectPHID` varchar(64) CHARACTER SET binary,
+ MODIFY `creationMethod` varchar(255) CHARACTER SET binary,
+ MODIFY `description` varchar(255) CHARACTER SET binary,
+ MODIFY `repositoryUUID` varchar(64) CHARACTER SET binary;
+ALTER TABLE `phabricator_differential`.`differential_diff`
+ COLLATE utf8_general_ci,
+ MODIFY `authorPHID` varchar(64) COLLATE utf8_bin,
+ MODIFY `sourceMachine` varchar(255) COLLATE utf8_general_ci,
+ MODIFY `sourcePath` varchar(255) COLLATE utf8_general_ci,
+ MODIFY `sourceControlSystem` varchar(64) COLLATE utf8_general_ci,
+ MODIFY `sourceControlBaseRevision` varchar(255) COLLATE utf8_general_ci,
+ MODIFY `sourceControlPath` varchar(255) COLLATE utf8_general_ci,
+ MODIFY `branch` varchar(255) COLLATE utf8_general_ci,
+ MODIFY `arcanistProjectPHID` varchar(64) COLLATE utf8_bin,
+ MODIFY `creationMethod` varchar(255) COLLATE utf8_general_ci,
+ MODIFY `description` varchar(255) COLLATE utf8_general_ci,
+ MODIFY `repositoryUUID` varchar(64) COLLATE utf8_bin;
+
+ALTER TABLE `phabricator_differential`.`differential_diffproperty`
+ MODIFY `name` varchar(255) CHARACTER SET binary,
+ MODIFY `data` longtext CHARACTER SET binary;
+ALTER TABLE `phabricator_differential`.`differential_diffproperty`
+ COLLATE utf8_general_ci,
+ MODIFY `name` varchar(255) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `data` longtext COLLATE utf8_bin NOT NULL;
+
+ALTER TABLE `phabricator_differential`.`differential_hunk`
+ MODIFY `changes` longtext CHARACTER SET binary;
+ALTER TABLE `phabricator_differential`.`differential_hunk`
+ COLLATE utf8_general_ci,
+ MODIFY `changes` longtext COLLATE utf8_bin;
+
+ALTER TABLE `phabricator_differential`.`differential_inlinecomment`
+ MODIFY `authorPHID` varchar(64) CHARACTER SET binary,
+ MODIFY `content` longtext CHARACTER SET binary,
+ MODIFY `cache` longtext CHARACTER SET binary;
+ALTER TABLE `phabricator_differential`.`differential_inlinecomment`
+ COLLATE utf8_general_ci,
+ MODIFY `authorPHID` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `content` longtext COLLATE utf8_bin NOT NULL,
+ MODIFY `cache` longtext COLLATE utf8_bin;
+
+ALTER TABLE `phabricator_differential`.`differential_relationship`
+ MODIFY `relation` varchar(4) CHARACTER SET binary,
+ MODIFY `objectPHID` varchar(64) CHARACTER SET binary,
+ MODIFY `reasonPHID` varchar(64) CHARACTER SET binary;
+ALTER TABLE `phabricator_differential`.`differential_relationship`
+ COLLATE utf8_general_ci,
+ MODIFY `relation` varchar(4) COLLATE utf8_bin NOT NULL,
+ MODIFY `objectPHID` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `reasonPHID` varchar(64) COLLATE utf8_bin;
+
+ALTER TABLE `phabricator_differential`.`differential_revision`
+ MODIFY `title` varchar(255) CHARACTER SET binary,
+ MODIFY `phid` varchar(64) CHARACTER SET binary,
+ MODIFY `status` varchar(32) CHARACTER SET binary,
+ MODIFY `summary` longtext CHARACTER SET binary,
+ MODIFY `testPlan` text CHARACTER SET binary,
+ MODIFY `authorPHID` varchar(64) CHARACTER SET binary,
+ MODIFY `lastReviewerPHID` varchar(64) CHARACTER SET binary,
+ MODIFY `attached` longtext CHARACTER SET binary,
+ MODIFY `unsubscribed` longtext CHARACTER SET binary,
+ MODIFY `mailKey` varchar(40) CHARACTER SET binary;
+ALTER TABLE `phabricator_differential`.`differential_revision`
+ COLLATE utf8_general_ci,
+ MODIFY `title` varchar(255) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `phid` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `status` varchar(32) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `summary` longtext COLLATE utf8_general_ci NOT NULL,
+ MODIFY `testPlan` text COLLATE utf8_general_ci NOT NULL,
+ MODIFY `authorPHID` varchar(64) COLLATE utf8_bin,
+ MODIFY `lastReviewerPHID` varchar(64) COLLATE utf8_bin,
+ MODIFY `attached` longtext COLLATE utf8_general_ci NOT NULL,
+ MODIFY `unsubscribed` longtext COLLATE utf8_bin NOT NULL,
+ MODIFY `mailKey` varchar(40) COLLATE utf8_bin NOT NULL;
+
+ALTER TABLE `phabricator_differential`.`differential_revisionhash`
+ MODIFY `type` char(4) CHARACTER SET binary,
+ MODIFY `hash` varchar(40) CHARACTER SET binary;
+ALTER TABLE `phabricator_differential`.`differential_revisionhash`
+ COLLATE utf8_general_ci,
+ MODIFY `type` char(4) COLLATE utf8_bin NOT NULL,
+ MODIFY `hash` varchar(40) COLLATE utf8_bin NOT NULL;
+
+
+
+ALTER DATABASE `phabricator_directory` COLLATE utf8_general_ci;
+
+ALTER TABLE `phabricator_directory`.`directory_category`
+ MODIFY `name` varchar(255) CHARACTER SET binary;
+ALTER TABLE `phabricator_directory`.`directory_category`
+ COLLATE utf8_general_ci,
+ MODIFY `name` varchar(255) COLLATE utf8_general_ci NOT NULL;
+
+ALTER TABLE `phabricator_directory`.`directory_item`
+ MODIFY `name` varchar(255) CHARACTER SET binary,
+ MODIFY `description` text CHARACTER SET binary,
+ MODIFY `href` varchar(255) CHARACTER SET binary,
+ MODIFY `imagePHID` varchar(64) CHARACTER SET binary;
+ALTER TABLE `phabricator_directory`.`directory_item`
+ COLLATE utf8_general_ci,
+ MODIFY `name` varchar(255) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `description` text COLLATE utf8_general_ci NOT NULL,
+ MODIFY `href` varchar(255) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `imagePHID` varchar(64) COLLATE utf8_bin;
+
+
+
+ALTER DATABASE `phabricator_draft` COLLATE utf8_general_ci;
+
+ALTER TABLE `phabricator_draft`.`draft`
+ MODIFY `authorPHID` varchar(64) CHARACTER SET binary,
+ MODIFY `draftKey` varchar(64) CHARACTER SET binary,
+ MODIFY `draft` longtext CHARACTER SET binary;
+ALTER TABLE `phabricator_draft`.`draft`
+ COLLATE utf8_general_ci,
+ MODIFY `authorPHID` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `draftKey` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `draft` longtext COLLATE utf8_bin NOT NULL;
+
+
+
+ALTER DATABASE `phabricator_drydock` COLLATE utf8_general_ci;
+
+ALTER TABLE `phabricator_drydock`.`drydock_lease`
+ MODIFY `phid` varchar(64) CHARACTER SET binary,
+ MODIFY `ownerPHID` varchar(64) CHARACTER SET binary,
+ MODIFY `attributes` longtext CHARACTER SET binary;
+ALTER TABLE `phabricator_drydock`.`drydock_lease`
+ COLLATE utf8_general_ci,
+ MODIFY `phid` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `ownerPHID` varchar(64) COLLATE utf8_bin,
+ MODIFY `attributes` longtext COLLATE utf8_bin NOT NULL;
+
+ALTER TABLE `phabricator_drydock`.`drydock_resource`
+ MODIFY `phid` varchar(64) CHARACTER SET binary,
+ MODIFY `name` varchar(255) CHARACTER SET binary,
+ MODIFY `ownerPHID` varchar(64) CHARACTER SET binary,
+ MODIFY `blueprintClass` varchar(255) CHARACTER SET binary,
+ MODIFY `type` varchar(64) CHARACTER SET binary,
+ MODIFY `attributes` longtext CHARACTER SET binary,
+ MODIFY `capabilities` longtext CHARACTER SET binary;
+ALTER TABLE `phabricator_drydock`.`drydock_resource`
+ COLLATE utf8_general_ci,
+ MODIFY `phid` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `name` varchar(255) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `ownerPHID` varchar(64) COLLATE utf8_bin,
+ MODIFY `blueprintClass` varchar(255) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `type` varchar(64) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `attributes` longtext COLLATE utf8_bin NOT NULL,
+ MODIFY `capabilities` longtext COLLATE utf8_bin NOT NULL;
+
+
+
+ALTER DATABASE `phabricator_feed` COLLATE utf8_general_ci;
+
+ALTER TABLE `phabricator_feed`.`feed_storydata`
+ MODIFY `phid` varchar(64) CHARACTER SET binary,
+ MODIFY `storyType` varchar(64) CHARACTER SET binary,
+ MODIFY `storyData` longtext CHARACTER SET binary,
+ MODIFY `authorPHID` varchar(64) CHARACTER SET binary;
+ALTER TABLE `phabricator_feed`.`feed_storydata`
+ COLLATE utf8_general_ci,
+ MODIFY `phid` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `storyType` varchar(64) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `storyData` longtext COLLATE utf8_bin NOT NULL,
+ MODIFY `authorPHID` varchar(64) COLLATE utf8_bin NOT NULL;
+
+ALTER TABLE `phabricator_feed`.`feed_storyreference`
+ MODIFY `objectPHID` varchar(64) CHARACTER SET binary;
+ALTER TABLE `phabricator_feed`.`feed_storyreference`
+ COLLATE utf8_general_ci,
+ MODIFY `objectPHID` varchar(64) COLLATE utf8_bin NOT NULL;
+
+
+
+ALTER DATABASE `phabricator_file` COLLATE utf8_general_ci;
+
+ALTER TABLE `phabricator_file`.`file`
+ MODIFY `phid` varchar(64) CHARACTER SET binary,
+ MODIFY `name` varchar(255) CHARACTER SET binary,
+ MODIFY `mimeType` varchar(255) CHARACTER SET binary,
+ MODIFY `storageEngine` varchar(32) CHARACTER SET binary,
+ MODIFY `storageFormat` varchar(32) CHARACTER SET binary,
+ MODIFY `storageHandle` varchar(255) CHARACTER SET binary,
+ MODIFY `authorPHID` varchar(64) CHARACTER SET binary,
+ MODIFY `secretKey` varchar(20) CHARACTER SET binary;
+ALTER TABLE `phabricator_file`.`file`
+ COLLATE utf8_general_ci,
+ MODIFY `phid` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `name` varchar(255) COLLATE utf8_general_ci,
+ MODIFY `mimeType` varchar(255) COLLATE utf8_general_ci,
+ MODIFY `storageEngine` varchar(32) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `storageFormat` varchar(32) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `storageHandle` varchar(255) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `authorPHID` varchar(64) COLLATE utf8_bin,
+ MODIFY `secretKey` varchar(20) COLLATE utf8_bin;
+
+ALTER TABLE `phabricator_file`.`file_imagemacro`
+ MODIFY `filePHID` varchar(64) CHARACTER SET binary,
+ MODIFY `name` varchar(255) CHARACTER SET binary;
+ALTER TABLE `phabricator_file`.`file_imagemacro`
+ COLLATE utf8_general_ci,
+ MODIFY `filePHID` varchar(64) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `name` varchar(255) COLLATE utf8_general_ci NOT NULL;
+
+ALTER TABLE `phabricator_file`.`file_proxyimage`
+ MODIFY `uri` varchar(255) CHARACTER SET binary,
+ MODIFY `filePHID` varchar(64) CHARACTER SET binary;
+ALTER TABLE `phabricator_file`.`file_proxyimage`
+ COLLATE utf8_general_ci,
+ MODIFY `uri` varchar(255) COLLATE utf8_bin NOT NULL,
+ MODIFY `filePHID` varchar(64) COLLATE utf8_bin NOT NULL;
+
+ALTER TABLE `phabricator_file`.`file_storageblob`
+ COLLATE utf8_general_ci;
+
+ALTER TABLE `phabricator_file`.`file_transformedfile`
+ MODIFY `originalPHID` varchar(64) CHARACTER SET binary,
+ MODIFY `transform` varchar(255) CHARACTER SET binary,
+ MODIFY `transformedPHID` varchar(64) CHARACTER SET binary;
+ALTER TABLE `phabricator_file`.`file_transformedfile`
+ COLLATE utf8_general_ci,
+ MODIFY `originalPHID` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `transform` varchar(255) COLLATE utf8_bin NOT NULL,
+ MODIFY `transformedPHID` varchar(64) COLLATE utf8_bin NOT NULL;
+
+
+
+ALTER DATABASE `phabricator_herald` COLLATE utf8_general_ci;
+
+ALTER TABLE `phabricator_herald`.`herald_action`
+ MODIFY `action` varchar(255) CHARACTER SET binary,
+ MODIFY `target` text CHARACTER SET binary;
+ALTER TABLE `phabricator_herald`.`herald_action`
+ COLLATE utf8_general_ci,
+ MODIFY `action` varchar(255) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `target` text COLLATE utf8_general_ci NOT NULL;
+
+ALTER TABLE `phabricator_herald`.`herald_condition`
+ MODIFY `fieldName` varchar(255) CHARACTER SET binary,
+ MODIFY `fieldCondition` varchar(255) CHARACTER SET binary,
+ MODIFY `value` text CHARACTER SET binary;
+ALTER TABLE `phabricator_herald`.`herald_condition`
+ COLLATE utf8_general_ci,
+ MODIFY `fieldName` varchar(255) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `fieldCondition` varchar(255) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `value` text COLLATE utf8_general_ci NOT NULL;
+
+ALTER TABLE `phabricator_herald`.`herald_rule`
+ MODIFY `name` varchar(255) CHARACTER SET binary,
+ MODIFY `authorPHID` varchar(64) CHARACTER SET binary,
+ MODIFY `contentType` varchar(255) CHARACTER SET binary,
+ MODIFY `ruleType` varchar(255) CHARACTER SET binary;
+ALTER TABLE `phabricator_herald`.`herald_rule`
+ COLLATE utf8_general_ci,
+ MODIFY `name` varchar(255) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `authorPHID` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `contentType` varchar(255) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `ruleType` varchar(255) COLLATE utf8_general_ci NOT NULL DEFAULT 'global';
+
+ALTER TABLE `phabricator_herald`.`herald_ruleapplied`
+ MODIFY `phid` varchar(64) CHARACTER SET binary;
+ALTER TABLE `phabricator_herald`.`herald_ruleapplied`
+ COLLATE utf8_general_ci,
+ MODIFY `phid` varchar(64) COLLATE utf8_bin NOT NULL;
+
+ALTER TABLE `phabricator_herald`.`herald_ruleedit`
+ MODIFY `editorPHID` varchar(64) CHARACTER SET binary;
+ALTER TABLE `phabricator_herald`.`herald_ruleedit`
+ COLLATE utf8_general_ci,
+ MODIFY `editorPHID` varchar(64) COLLATE utf8_bin NOT NULL;
+
+ALTER TABLE `phabricator_herald`.`herald_savedheader`
+ MODIFY `phid` varchar(64) CHARACTER SET binary,
+ MODIFY `header` varchar(255) CHARACTER SET binary;
+ALTER TABLE `phabricator_herald`.`herald_savedheader`
+ COLLATE utf8_general_ci,
+ MODIFY `phid` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `header` varchar(255) COLLATE utf8_general_ci NOT NULL;
+
+ALTER TABLE `phabricator_herald`.`herald_transcript`
+ MODIFY `phid` varchar(64) CHARACTER SET binary,
+ MODIFY `host` varchar(255) CHARACTER SET binary,
+ MODIFY `psth` varchar(255) CHARACTER SET binary,
+ MODIFY `objectPHID` varchar(64) CHARACTER SET binary,
+ MODIFY `objectTranscript` longtext CHARACTER SET binary,
+ MODIFY `ruleTranscripts` longtext CHARACTER SET binary,
+ MODIFY `conditionTranscripts` longtext CHARACTER SET binary,
+ MODIFY `applyTranscripts` longtext CHARACTER SET binary;
+ALTER TABLE `phabricator_herald`.`herald_transcript`
+ COLLATE utf8_general_ci,
+ MODIFY `phid` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `host` varchar(255) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `psth` varchar(255) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `objectPHID` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `objectTranscript` longtext COLLATE utf8_bin NOT NULL,
+ MODIFY `ruleTranscripts` longtext COLLATE utf8_bin NOT NULL,
+ MODIFY `conditionTranscripts` longtext COLLATE utf8_bin NOT NULL,
+ MODIFY `applyTranscripts` longtext COLLATE utf8_bin NOT NULL;
+
+
+
+ALTER DATABASE `phabricator_maniphest` COLLATE utf8_general_ci;
+
+ALTER TABLE `phabricator_maniphest`.`maniphest_task`
+ MODIFY `phid` varchar(64) CHARACTER SET binary,
+ MODIFY `authorPHID` varchar(64) CHARACTER SET binary,
+ MODIFY `ownerPHID` varchar(64) CHARACTER SET binary,
+ MODIFY `ccPHIDs` text CHARACTER SET binary,
+ MODIFY `attached` longtext CHARACTER SET binary,
+ MODIFY `title` text CHARACTER SET binary,
+ MODIFY `description` longtext CHARACTER SET binary,
+ MODIFY `projectPHIDs` longtext CHARACTER SET binary,
+ MODIFY `mailKey` varchar(40) CHARACTER SET binary,
+ MODIFY `ownerOrdering` varchar(64) CHARACTER SET binary,
+ MODIFY `originalEmailSource` varchar(255) CHARACTER SET binary;
+ALTER TABLE `phabricator_maniphest`.`maniphest_task`
+ COLLATE utf8_general_ci,
+ MODIFY `phid` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `authorPHID` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `ownerPHID` varchar(64) COLLATE utf8_bin,
+ MODIFY `ccPHIDs` text COLLATE utf8_general_ci,
+ MODIFY `attached` longtext COLLATE utf8_general_ci NOT NULL,
+ MODIFY `title` text COLLATE utf8_general_ci NOT NULL,
+ MODIFY `description` longtext COLLATE utf8_general_ci NOT NULL,
+ MODIFY `projectPHIDs` longtext COLLATE utf8_bin NOT NULL,
+ MODIFY `mailKey` varchar(40) COLLATE utf8_bin NOT NULL,
+ MODIFY `ownerOrdering` varchar(64) COLLATE utf8_general_ci,
+ MODIFY `originalEmailSource` varchar(255) COLLATE utf8_general_ci;
+
+ALTER TABLE `phabricator_maniphest`.`maniphest_taskauxiliarystorage`
+ MODIFY `taskPHID` varchar(64) CHARACTER SET binary,
+ MODIFY `name` varchar(255) CHARACTER SET binary,
+ MODIFY `value` varchar(255) CHARACTER SET binary;
+ALTER TABLE `phabricator_maniphest`.`maniphest_taskauxiliarystorage`
+ COLLATE utf8_general_ci,
+ MODIFY `taskPHID` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `name` varchar(255) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `value` varchar(255) COLLATE utf8_general_ci NOT NULL;
+
+ALTER TABLE `phabricator_maniphest`.`maniphest_taskproject`
+ MODIFY `taskPHID` varchar(64) CHARACTER SET binary,
+ MODIFY `projectPHID` varchar(64) CHARACTER SET binary;
+ALTER TABLE `phabricator_maniphest`.`maniphest_taskproject`
+ COLLATE utf8_general_ci,
+ MODIFY `taskPHID` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `projectPHID` varchar(64) COLLATE utf8_bin NOT NULL;
+
+ALTER TABLE `phabricator_maniphest`.`maniphest_tasksubscriber`
+ MODIFY `taskPHID` varchar(64) CHARACTER SET binary,
+ MODIFY `subscriberPHID` varchar(64) CHARACTER SET binary;
+ALTER TABLE `phabricator_maniphest`.`maniphest_tasksubscriber`
+ COLLATE utf8_general_ci,
+ MODIFY `taskPHID` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `subscriberPHID` varchar(64) COLLATE utf8_bin NOT NULL;
+
+ALTER TABLE `phabricator_maniphest`.`maniphest_touch`
+ MODIFY `userPHID` varchar(64) CHARACTER SET binary;
+ALTER TABLE `phabricator_maniphest`.`maniphest_touch`
+ COLLATE utf8_general_ci,
+ MODIFY `userPHID` varchar(64) COLLATE utf8_bin NOT NULL;
+
+ALTER TABLE `phabricator_maniphest`.`maniphest_transaction`
+ MODIFY `authorPHID` varchar(64) CHARACTER SET binary,
+ MODIFY `transactionType` varchar(16) CHARACTER SET binary,
+ MODIFY `oldValue` longtext CHARACTER SET binary,
+ MODIFY `newValue` longtext CHARACTER SET binary,
+ MODIFY `comments` longtext CHARACTER SET binary,
+ MODIFY `cache` longtext CHARACTER SET binary,
+ MODIFY `metadata` longtext CHARACTER SET binary,
+ MODIFY `contentSource` varchar(255) CHARACTER SET binary;
+ALTER TABLE `phabricator_maniphest`.`maniphest_transaction`
+ COLLATE utf8_general_ci,
+ MODIFY `authorPHID` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `transactionType` varchar(16) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `oldValue` longtext COLLATE utf8_bin,
+ MODIFY `newValue` longtext COLLATE utf8_bin,
+ MODIFY `comments` longtext COLLATE utf8_bin,
+ MODIFY `cache` longtext COLLATE utf8_bin,
+ MODIFY `metadata` longtext COLLATE utf8_bin NOT NULL,
+ MODIFY `contentSource` varchar(255) COLLATE utf8_general_ci;
+
+
+
+ALTER DATABASE `phabricator_meta_data` COLLATE utf8_general_ci;
+
+ALTER TABLE `phabricator_meta_data`.`schema_version`
+ COLLATE utf8_general_ci;
+
+
+
+ALTER DATABASE `phabricator_metamta` COLLATE utf8_general_ci;
+
+ALTER TABLE `phabricator_metamta`.`metamta_mail`
+ MODIFY `parameters` longtext CHARACTER SET binary,
+ MODIFY `status` varchar(255) CHARACTER SET binary,
+ MODIFY `message` text CHARACTER SET binary,
+ MODIFY `relatedPHID` varchar(64) CHARACTER SET binary;
+ALTER TABLE `phabricator_metamta`.`metamta_mail`
+ COLLATE utf8_general_ci,
+ MODIFY `parameters` longtext COLLATE utf8_bin NOT NULL,
+ MODIFY `status` varchar(255) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `message` text COLLATE utf8_general_ci,
+ MODIFY `relatedPHID` varchar(64) COLLATE utf8_bin;
+
+ALTER TABLE `phabricator_metamta`.`metamta_mailinglist`
+ MODIFY `phid` varchar(64) CHARACTER SET binary,
+ MODIFY `name` varchar(255) CHARACTER SET binary,
+ MODIFY `email` varchar(255) CHARACTER SET binary,
+ MODIFY `uri` varchar(255) CHARACTER SET binary;
+ALTER TABLE `phabricator_metamta`.`metamta_mailinglist`
+ COLLATE utf8_general_ci,
+ MODIFY `phid` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `name` varchar(255) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `email` varchar(255) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `uri` varchar(255) COLLATE utf8_general_ci;
+
+ALTER TABLE `phabricator_metamta`.`metamta_receivedmail`
+ MODIFY `headers` longtext CHARACTER SET binary,
+ MODIFY `bodies` longtext CHARACTER SET binary,
+ MODIFY `attachments` longtext CHARACTER SET binary,
+ MODIFY `relatedPHID` varchar(64) CHARACTER SET binary,
+ MODIFY `authorPHID` varchar(64) CHARACTER SET binary,
+ MODIFY `message` longtext CHARACTER SET binary;
+ALTER TABLE `phabricator_metamta`.`metamta_receivedmail`
+ COLLATE utf8_general_ci,
+ MODIFY `headers` longtext COLLATE utf8_bin NOT NULL,
+ MODIFY `bodies` longtext COLLATE utf8_bin NOT NULL,
+ MODIFY `attachments` longtext COLLATE utf8_bin NOT NULL,
+ MODIFY `relatedPHID` varchar(64) COLLATE utf8_bin,
+ MODIFY `authorPHID` varchar(64) COLLATE utf8_bin,
+ MODIFY `message` longtext COLLATE utf8_bin;
+
+
+
+ALTER DATABASE `phabricator_oauth_server` COLLATE utf8_general_ci;
+
+ALTER TABLE `phabricator_oauth_server`.`oauth_server_oauthclientauthorization`
+ MODIFY `phid` varchar(64) CHARACTER SET binary,
+ MODIFY `userPHID` varchar(64) CHARACTER SET binary,
+ MODIFY `clientPHID` varchar(64) CHARACTER SET binary,
+ MODIFY `scope` text CHARACTER SET binary;
+ALTER TABLE `phabricator_oauth_server`.`oauth_server_oauthclientauthorization`
+ COLLATE utf8_general_ci,
+ MODIFY `phid` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `userPHID` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `clientPHID` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `scope` text COLLATE utf8_general_ci NOT NULL;
+
+ALTER TABLE `phabricator_oauth_server`.`oauth_server_oauthserveraccesstoken`
+ MODIFY `token` varchar(32) CHARACTER SET binary,
+ MODIFY `userPHID` varchar(64) CHARACTER SET binary,
+ MODIFY `clientPHID` varchar(64) CHARACTER SET binary;
+ALTER TABLE `phabricator_oauth_server`.`oauth_server_oauthserveraccesstoken`
+ COLLATE utf8_general_ci,
+ MODIFY `token` varchar(32) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `userPHID` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `clientPHID` varchar(64) COLLATE utf8_bin NOT NULL;
+
+ALTER TABLE `phabricator_oauth_server`.`oauth_server_oauthserverauthorizationcode`
+ MODIFY `code` varchar(32) CHARACTER SET binary,
+ MODIFY `clientPHID` varchar(64) CHARACTER SET binary,
+ MODIFY `clientSecret` varchar(32) CHARACTER SET binary,
+ MODIFY `userPHID` varchar(64) CHARACTER SET binary,
+ MODIFY `redirectURI` varchar(255) CHARACTER SET binary;
+ALTER TABLE `phabricator_oauth_server`.`oauth_server_oauthserverauthorizationcode`
+ COLLATE utf8_general_ci,
+ MODIFY `code` varchar(32) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `clientPHID` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `clientSecret` varchar(32) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `userPHID` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `redirectURI` varchar(255) COLLATE utf8_general_ci NOT NULL;
+
+ALTER TABLE `phabricator_oauth_server`.`oauth_server_oauthserverclient`
+ MODIFY `phid` varchar(64) CHARACTER SET binary,
+ MODIFY `name` varchar(255) CHARACTER SET binary,
+ MODIFY `secret` varchar(32) CHARACTER SET binary,
+ MODIFY `redirectURI` varchar(255) CHARACTER SET binary,
+ MODIFY `creatorPHID` varchar(64) CHARACTER SET binary;
+ALTER TABLE `phabricator_oauth_server`.`oauth_server_oauthserverclient`
+ COLLATE utf8_general_ci,
+ MODIFY `phid` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `name` varchar(255) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `secret` varchar(32) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `redirectURI` varchar(255) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `creatorPHID` varchar(64) COLLATE utf8_bin NOT NULL;
+
+
+
+ALTER DATABASE `phabricator_owners` COLLATE utf8_general_ci;
+
+ALTER TABLE `phabricator_owners`.`owners_owner`
+ MODIFY `userPHID` varchar(64) CHARACTER SET binary;
+ALTER TABLE `phabricator_owners`.`owners_owner`
+ COLLATE utf8_general_ci,
+ MODIFY `userPHID` varchar(64) COLLATE utf8_bin NOT NULL;
+
+ALTER TABLE `phabricator_owners`.`owners_package`
+ MODIFY `phid` varchar(64) CHARACTER SET binary,
+ MODIFY `name` varchar(255) CHARACTER SET binary,
+ MODIFY `description` text CHARACTER SET binary,
+ MODIFY `primaryOwnerPHID` varchar(64) CHARACTER SET binary;
+ALTER TABLE `phabricator_owners`.`owners_package`
+ COLLATE utf8_general_ci,
+ MODIFY `phid` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `name` varchar(255) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `description` text COLLATE utf8_general_ci NOT NULL,
+ MODIFY `primaryOwnerPHID` varchar(64) COLLATE utf8_bin;
+
+ALTER TABLE `phabricator_owners`.`owners_path`
+ MODIFY `repositoryPHID` varchar(64) CHARACTER SET binary,
+ MODIFY `path` varchar(255) CHARACTER SET binary;
+ALTER TABLE `phabricator_owners`.`owners_path`
+ COLLATE utf8_general_ci,
+ MODIFY `repositoryPHID` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `path` varchar(255) COLLATE utf8_general_ci NOT NULL;
+
+
+
+ALTER DATABASE `phabricator_pastebin` COLLATE utf8_general_ci;
+
+ALTER TABLE `phabricator_pastebin`.`pastebin_paste`
+ MODIFY `title` varchar(255) CHARACTER SET binary,
+ MODIFY `phid` varchar(64) CHARACTER SET binary,
+ MODIFY `authorPHID` varchar(64) CHARACTER SET binary,
+ MODIFY `filePHID` varchar(64) CHARACTER SET binary,
+ MODIFY `language` varchar(64) CHARACTER SET binary,
+ MODIFY `parentPHID` varchar(64) CHARACTER SET binary;
+ALTER TABLE `phabricator_pastebin`.`pastebin_paste`
+ COLLATE utf8_general_ci,
+ MODIFY `title` varchar(255) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `phid` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `authorPHID` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `filePHID` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `language` varchar(64) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `parentPHID` varchar(64) COLLATE utf8_bin;
+
+
+
+ALTER DATABASE `phabricator_phid` COLLATE utf8_general_ci;
+
+ALTER TABLE `phabricator_phid`.`phid`
+ MODIFY `phid` varchar(64) CHARACTER SET binary,
+ MODIFY `phidType` varchar(4) CHARACTER SET binary,
+ MODIFY `parentPHID` varchar(64) CHARACTER SET binary,
+ MODIFY `ownerPHID` varchar(64) CHARACTER SET binary;
+ALTER TABLE `phabricator_phid`.`phid`
+ COLLATE utf8_general_ci,
+ MODIFY `phid` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `phidType` varchar(4) COLLATE utf8_bin,
+ MODIFY `parentPHID` varchar(64) COLLATE utf8_general_ci,
+ MODIFY `ownerPHID` varchar(64) COLLATE utf8_general_ci;
+
+
+
+ALTER DATABASE `phabricator_phriction` COLLATE utf8_general_ci;
+
+ALTER TABLE `phabricator_phriction`.`phriction_content`
+ MODIFY `authorPHID` varchar(64) CHARACTER SET binary,
+ MODIFY `title` varchar(512) CHARACTER SET binary,
+ MODIFY `slug` varchar(512) CHARACTER SET binary,
+ MODIFY `content` longtext CHARACTER SET binary,
+ MODIFY `description` varchar(512) CHARACTER SET binary;
+ALTER TABLE `phabricator_phriction`.`phriction_content`
+ COLLATE utf8_general_ci,
+ MODIFY `authorPHID` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `title` varchar(512) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `slug` varchar(512) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `content` longtext COLLATE utf8_bin NOT NULL,
+ MODIFY `description` varchar(512) COLLATE utf8_general_ci;
+
+ALTER TABLE `phabricator_phriction`.`phriction_document`
+ MODIFY `phid` varchar(64) CHARACTER SET binary,
+ MODIFY `slug` varchar(128) CHARACTER SET binary;
+ALTER TABLE `phabricator_phriction`.`phriction_document`
+ COLLATE utf8_general_ci,
+ MODIFY `phid` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `slug` varchar(128) COLLATE utf8_general_ci NOT NULL;
+
+
+
+ALTER DATABASE `phabricator_project` COLLATE utf8_general_ci;
+
+ALTER TABLE `phabricator_project`.`project`
+ MODIFY `name` varchar(255) CHARACTER SET binary,
+ MODIFY `phid` varchar(64) CHARACTER SET binary,
+ MODIFY `authorPHID` varchar(64) CHARACTER SET binary,
+ MODIFY `status` varchar(32) CHARACTER SET binary,
+ MODIFY `subprojectPHIDs` longtext CHARACTER SET binary,
+ MODIFY `phrictionSlug` varchar(128) CHARACTER SET binary;
+ALTER TABLE `phabricator_project`.`project`
+ COLLATE utf8_general_ci,
+ MODIFY `name` varchar(255) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `phid` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `authorPHID` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `status` varchar(32) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `subprojectPHIDs` longtext COLLATE utf8_bin NOT NULL,
+ MODIFY `phrictionSlug` varchar(128) COLLATE utf8_bin;
+
+ALTER TABLE `phabricator_project`.`project_affiliation`
+ MODIFY `projectPHID` varchar(64) CHARACTER SET binary,
+ MODIFY `userPHID` varchar(64) CHARACTER SET binary,
+ MODIFY `role` varchar(255) CHARACTER SET binary;
+ALTER TABLE `phabricator_project`.`project_affiliation`
+ COLLATE utf8_general_ci,
+ MODIFY `projectPHID` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `userPHID` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `role` varchar(255) COLLATE utf8_general_ci NOT NULL;
+
+ALTER TABLE `phabricator_project`.`project_profile`
+ MODIFY `projectPHID` varchar(64) CHARACTER SET binary,
+ MODIFY `blurb` longtext CHARACTER SET binary,
+ MODIFY `profileImagePHID` varchar(64) CHARACTER SET binary;
+ALTER TABLE `phabricator_project`.`project_profile`
+ COLLATE utf8_general_ci,
+ MODIFY `projectPHID` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `blurb` longtext COLLATE utf8_general_ci NOT NULL,
+ MODIFY `profileImagePHID` varchar(64) COLLATE utf8_bin;
+
+ALTER TABLE `phabricator_project`.`project_subproject`
+ MODIFY `projectPHID` varchar(64) CHARACTER SET binary,
+ MODIFY `subprojectPHID` varchar(64) CHARACTER SET binary;
+ALTER TABLE `phabricator_project`.`project_subproject`
+ COLLATE utf8_general_ci,
+ MODIFY `projectPHID` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `subprojectPHID` varchar(64) COLLATE utf8_bin NOT NULL;
+
+ALTER TABLE `phabricator_project`.`project_transaction`
+ MODIFY `authorPHID` varchar(64) CHARACTER SET binary,
+ MODIFY `transactionType` varchar(32) CHARACTER SET binary,
+ MODIFY `oldValue` longtext CHARACTER SET binary,
+ MODIFY `newValue` longtext CHARACTER SET binary;
+ALTER TABLE `phabricator_project`.`project_transaction`
+ COLLATE utf8_general_ci,
+ MODIFY `authorPHID` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `transactionType` varchar(32) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `oldValue` longtext COLLATE utf8_bin NOT NULL,
+ MODIFY `newValue` longtext COLLATE utf8_bin NOT NULL;
+
+
+
+ALTER DATABASE `phabricator_repository` COLLATE utf8_general_ci;
+
+ALTER TABLE `phabricator_repository`.`repository`
+ MODIFY `phid` varchar(64) CHARACTER SET binary,
+ MODIFY `name` varchar(255) CHARACTER SET binary,
+ MODIFY `callsign` varchar(32) CHARACTER SET binary,
+ MODIFY `versionControlSystem` varchar(32) CHARACTER SET binary,
+ MODIFY `details` longtext CHARACTER SET binary,
+ MODIFY `uuid` varchar(64) CHARACTER SET binary;
+ALTER TABLE `phabricator_repository`.`repository`
+ COLLATE utf8_general_ci,
+ MODIFY `phid` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `name` varchar(255) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `callsign` varchar(32) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `versionControlSystem` varchar(32) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `details` longtext COLLATE utf8_bin NOT NULL,
+ MODIFY `uuid` varchar(64) COLLATE utf8_bin;
+
+ALTER TABLE `phabricator_repository`.`repository_arcanistproject`
+ MODIFY `phid` varchar(64) CHARACTER SET binary,
+ MODIFY `name` varchar(255) CHARACTER SET binary,
+ MODIFY `symbolIndexLanguages` longtext CHARACTER SET binary,
+ MODIFY `symbolIndexProjects` longtext CHARACTER SET binary;
+ALTER TABLE `phabricator_repository`.`repository_arcanistproject`
+ COLLATE utf8_general_ci,
+ MODIFY `phid` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `name` varchar(255) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `symbolIndexLanguages` longtext COLLATE utf8_bin NOT NULL,
+ MODIFY `symbolIndexProjects` longtext COLLATE utf8_bin NOT NULL;
+
+ALTER TABLE `phabricator_repository`.`repository_auditrequest`
+ MODIFY `auditorPHID` varchar(64) CHARACTER SET binary,
+ MODIFY `commitPHID` varchar(64) CHARACTER SET binary,
+ MODIFY `auditStatus` varchar(64) CHARACTER SET binary,
+ MODIFY `auditReasons` longtext CHARACTER SET binary;
+ALTER TABLE `phabricator_repository`.`repository_auditrequest`
+ COLLATE utf8_general_ci,
+ MODIFY `auditorPHID` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `commitPHID` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `auditStatus` varchar(64) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `auditReasons` longtext COLLATE utf8_bin NOT NULL;
+
+ALTER TABLE `phabricator_repository`.`repository_badcommit`
+ MODIFY `fullCommitName` varchar(255) CHARACTER SET binary,
+ MODIFY `description` longtext CHARACTER SET binary;
+ALTER TABLE `phabricator_repository`.`repository_badcommit`
+ COLLATE utf8_general_ci,
+ MODIFY `fullCommitName` varchar(255) COLLATE utf8_bin NOT NULL,
+ MODIFY `description` longtext COLLATE utf8_bin NOT NULL;
+
+ALTER TABLE `phabricator_repository`.`repository_commit`
+ MODIFY `phid` varchar(64) CHARACTER SET binary,
+ MODIFY `commitIdentifier` varchar(40) CHARACTER SET binary,
+ MODIFY `mailKey` varchar(20) CHARACTER SET binary,
+ MODIFY `authorPHID` varchar(64) CHARACTER SET binary;
+ALTER TABLE `phabricator_repository`.`repository_commit`
+ COLLATE utf8_general_ci,
+ MODIFY `phid` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `commitIdentifier` varchar(40) COLLATE utf8_bin NOT NULL,
+ MODIFY `mailKey` varchar(20) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `authorPHID` varchar(64) COLLATE utf8_bin;
+
+ALTER TABLE `phabricator_repository`.`repository_commitdata`
+ MODIFY `authorName` varchar(255) CHARACTER SET binary,
+ MODIFY `commitMessage` longtext CHARACTER SET binary,
+ MODIFY `commitDetails` longtext CHARACTER SET binary;
+ALTER TABLE `phabricator_repository`.`repository_commitdata`
+ COLLATE utf8_general_ci,
+ MODIFY `authorName` varchar(255) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `commitMessage` longtext COLLATE utf8_bin NOT NULL,
+ MODIFY `commitDetails` longtext COLLATE utf8_bin NOT NULL;
+
+ALTER TABLE `phabricator_repository`.`repository_filesystem`
+ COLLATE utf8_general_ci;
+
+ALTER TABLE `phabricator_repository`.`repository_path`
+ MODIFY `path` varchar(512) CHARACTER SET binary,
+ MODIFY `pathHash` varchar(32) CHARACTER SET binary;
+ALTER TABLE `phabricator_repository`.`repository_path`
+ COLLATE utf8_general_ci,
+ MODIFY `path` varchar(512) COLLATE utf8_bin NOT NULL,
+ MODIFY `pathHash` varchar(32) COLLATE utf8_bin NOT NULL;
+
+ALTER TABLE `phabricator_repository`.`repository_pathchange`
+ COLLATE utf8_general_ci;
+
+ALTER TABLE `phabricator_repository`.`repository_shortcut`
+ MODIFY `name` varchar(255) CHARACTER SET binary,
+ MODIFY `href` varchar(255) CHARACTER SET binary,
+ MODIFY `description` varchar(255) CHARACTER SET binary;
+ALTER TABLE `phabricator_repository`.`repository_shortcut`
+ COLLATE utf8_general_ci,
+ MODIFY `name` varchar(255) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `href` varchar(255) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `description` varchar(255) COLLATE utf8_general_ci NOT NULL;
+
+ALTER TABLE `phabricator_repository`.`repository_summary`
+ COLLATE utf8_general_ci;
+
+ALTER TABLE `phabricator_repository`.`repository_symbol`
+ MODIFY `symbolName` varchar(128) CHARACTER SET binary,
+ MODIFY `symbolType` varchar(12) CHARACTER SET binary,
+ MODIFY `symbolLanguage` varchar(32) CHARACTER SET binary;
+ALTER TABLE `phabricator_repository`.`repository_symbol`
+ COLLATE utf8_general_ci,
+ MODIFY `symbolName` varchar(128) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `symbolType` varchar(12) COLLATE utf8_bin NOT NULL,
+ MODIFY `symbolLanguage` varchar(32) COLLATE utf8_bin NOT NULL;
+
+
+
+ALTER DATABASE `phabricator_search` COLLATE utf8_general_ci;
+
+ALTER TABLE `phabricator_search`.`search_document`
+ MODIFY `phid` varchar(64) CHARACTER SET binary,
+ MODIFY `documentType` varchar(4) CHARACTER SET binary,
+ MODIFY `documentTitle` varchar(255) CHARACTER SET binary;
+ALTER TABLE `phabricator_search`.`search_document`
+ COLLATE utf8_general_ci,
+ MODIFY `phid` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `documentType` varchar(4) COLLATE utf8_bin NOT NULL,
+ MODIFY `documentTitle` varchar(255) COLLATE utf8_general_ci NOT NULL;
+
+ALTER TABLE `phabricator_search`.`search_documentfield`
+ DROP INDEX corpus,
+ MODIFY `phid` varchar(64) CHARACTER SET binary,
+ MODIFY `phidType` varchar(4) CHARACTER SET binary,
+ MODIFY `field` varchar(4) CHARACTER SET binary,
+ MODIFY `auxPHID` varchar(64) CHARACTER SET binary,
+ MODIFY `corpus` text CHARACTER SET binary;
+ALTER TABLE `phabricator_search`.`search_documentfield`
+ COLLATE utf8_general_ci,
+ MODIFY `phid` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `phidType` varchar(4) COLLATE utf8_bin NOT NULL,
+ MODIFY `field` varchar(4) COLLATE utf8_bin NOT NULL,
+ MODIFY `auxPHID` varchar(64) COLLATE utf8_bin,
+ MODIFY `corpus` text COLLATE utf8_general_ci,
+ ADD FULLTEXT (corpus);
+
+ALTER TABLE `phabricator_search`.`search_documentrelationship`
+ MODIFY `phid` varchar(64) CHARACTER SET binary,
+ MODIFY `relatedPHID` varchar(64) CHARACTER SET binary,
+ MODIFY `relation` varchar(4) CHARACTER SET binary,
+ MODIFY `relatedType` varchar(4) CHARACTER SET binary;
+ALTER TABLE `phabricator_search`.`search_documentrelationship`
+ COLLATE utf8_general_ci,
+ MODIFY `phid` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `relatedPHID` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `relation` varchar(4) COLLATE utf8_bin NOT NULL,
+ MODIFY `relatedType` varchar(4) COLLATE utf8_general_ci NOT NULL;
+
+ALTER TABLE `phabricator_search`.`search_query`
+ MODIFY `query` varchar(255) CHARACTER SET binary,
+ MODIFY `parameters` text CHARACTER SET binary,
+ MODIFY `queryKey` varchar(12) CHARACTER SET binary;
+ALTER TABLE `phabricator_search`.`search_query`
+ COLLATE utf8_general_ci,
+ MODIFY `query` varchar(255) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `parameters` text COLLATE utf8_general_ci NOT NULL,
+ MODIFY `queryKey` varchar(12) COLLATE utf8_general_ci NOT NULL;
+
+
+
+ALTER DATABASE `phabricator_slowvote` COLLATE utf8_general_ci;
+
+ALTER TABLE `phabricator_slowvote`.`slowvote_choice`
+ MODIFY `authorPHID` varchar(64) CHARACTER SET binary;
+ALTER TABLE `phabricator_slowvote`.`slowvote_choice`
+ COLLATE utf8_general_ci,
+ MODIFY `authorPHID` varchar(64) COLLATE utf8_bin NOT NULL;
+
+ALTER TABLE `phabricator_slowvote`.`slowvote_comment`
+ MODIFY `authorPHID` varchar(64) CHARACTER SET binary;
+ALTER TABLE `phabricator_slowvote`.`slowvote_comment`
+ COLLATE utf8_general_ci,
+ MODIFY `authorPHID` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `commentText` longtext COLLATE utf8_bin NOT NULL;
+
+ALTER TABLE `phabricator_slowvote`.`slowvote_option`
+ MODIFY `name` varchar(255) CHARACTER SET binary;
+ALTER TABLE `phabricator_slowvote`.`slowvote_option`
+ COLLATE utf8_general_ci,
+ MODIFY `name` varchar(255) COLLATE utf8_general_ci NOT NULL;
+
+ALTER TABLE `phabricator_slowvote`.`slowvote_poll`
+ MODIFY `question` varchar(255) CHARACTER SET binary,
+ MODIFY `phid` varchar(64) CHARACTER SET binary,
+ MODIFY `authorPHID` varchar(64) CHARACTER SET binary;
+ALTER TABLE `phabricator_slowvote`.`slowvote_poll`
+ COLLATE utf8_general_ci,
+ MODIFY `question` varchar(255) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `phid` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `authorPHID` varchar(64) COLLATE utf8_bin NOT NULL;
+
+
+
+ALTER DATABASE `phabricator_timeline` COLLATE utf8_general_ci;
+
+ALTER TABLE `phabricator_timeline`.`timeline_cursor`
+ MODIFY `name` varchar(255) CHARACTER SET binary;
+ALTER TABLE `phabricator_timeline`.`timeline_cursor`
+ COLLATE utf8_general_ci,
+ MODIFY `name` varchar(255) COLLATE utf8_general_ci NOT NULL;
+
+ALTER TABLE `phabricator_timeline`.`timeline_event`
+ MODIFY `type` char(4) CHARACTER SET binary;
+ALTER TABLE `phabricator_timeline`.`timeline_event`
+ COLLATE utf8_general_ci,
+ MODIFY `type` char(4) COLLATE utf8_bin NOT NULL;
+
+ALTER TABLE `phabricator_timeline`.`timeline_eventdata`
+ COLLATE utf8_general_ci,
+ MODIFY `eventData` longtext COLLATE utf8_bin NOT NULL;
+
+
+
+ALTER DATABASE `phabricator_user` COLLATE utf8_general_ci;
+
+ALTER TABLE `phabricator_user`.`phabricator_session`
+ MODIFY `userPHID` varchar(64) CHARACTER SET binary,
+ MODIFY `type` varchar(32) CHARACTER SET binary,
+ MODIFY `sessionKey` varchar(40) CHARACTER SET binary;
+ALTER TABLE `phabricator_user`.`phabricator_session`
+ COLLATE utf8_general_ci,
+ MODIFY `userPHID` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `type` varchar(32) COLLATE utf8_bin NOT NULL,
+ MODIFY `sessionKey` varchar(40) COLLATE utf8_general_ci NOT NULL;
+
+ALTER TABLE `phabricator_user`.`user`
+ MODIFY `phid` varchar(64) CHARACTER SET binary,
+ MODIFY `userName` varchar(64) CHARACTER SET binary,
+ MODIFY `realName` varchar(128) CHARACTER SET binary,
+ MODIFY `email` varchar(255) CHARACTER SET binary,
+ MODIFY `passwordSalt` varchar(32) CHARACTER SET binary,
+ MODIFY `passwordHash` varchar(32) CHARACTER SET binary,
+ MODIFY `profileImagePHID` varchar(64) CHARACTER SET binary,
+ MODIFY `consoleTab` varchar(64) CHARACTER SET binary,
+ MODIFY `conduitCertificate` varchar(255) CHARACTER SET binary,
+ MODIFY `timezoneIdentifier` varchar(255) CHARACTER SET binary;
+ALTER TABLE `phabricator_user`.`user`
+ COLLATE utf8_general_ci,
+ MODIFY `phid` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `userName` varchar(64) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `realName` varchar(128) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `email` varchar(255) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `passwordSalt` varchar(32) COLLATE utf8_bin,
+ MODIFY `passwordHash` varchar(32) COLLATE utf8_bin,
+ MODIFY `profileImagePHID` varchar(64) COLLATE utf8_bin,
+ MODIFY `consoleTab` varchar(64) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `conduitCertificate` varchar(255) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `timezoneIdentifier` varchar(255) COLLATE utf8_general_ci NOT NULL;
+
+ALTER TABLE `phabricator_user`.`user_log`
+ MODIFY `actorPHID` varchar(64) CHARACTER SET binary,
+ MODIFY `userPHID` varchar(64) CHARACTER SET binary,
+ MODIFY `action` varchar(64) CHARACTER SET binary,
+ MODIFY `remoteAddr` varchar(16) CHARACTER SET binary,
+ MODIFY `session` varchar(40) CHARACTER SET binary;
+ALTER TABLE `phabricator_user`.`user_log`
+ COLLATE utf8_general_ci,
+ MODIFY `actorPHID` varchar(64) COLLATE utf8_bin,
+ MODIFY `userPHID` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `action` varchar(64) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `oldValue` longtext COLLATE utf8_bin NOT NULL,
+ MODIFY `newValue` longtext COLLATE utf8_bin NOT NULL,
+ MODIFY `details` longtext COLLATE utf8_bin NOT NULL,
+ MODIFY `remoteAddr` varchar(16) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `session` varchar(40) COLLATE utf8_general_ci;
+
+ALTER TABLE `phabricator_user`.`user_nametoken`
+ MODIFY `token` varchar(255) CHARACTER SET binary;
+ALTER TABLE `phabricator_user`.`user_nametoken`
+ COLLATE utf8_general_ci,
+ MODIFY `token` varchar(255) COLLATE utf8_general_ci NOT NULL;
+
+ALTER TABLE `phabricator_user`.`user_oauthinfo`
+ MODIFY `oauthProvider` varchar(255) CHARACTER SET binary,
+ MODIFY `oauthUID` varchar(255) CHARACTER SET binary,
+ MODIFY `accountURI` varchar(255) CHARACTER SET binary,
+ MODIFY `accountName` varchar(255) CHARACTER SET binary,
+ MODIFY `token` varchar(255) CHARACTER SET binary,
+ MODIFY `tokenScope` varchar(255) CHARACTER SET binary,
+ MODIFY `tokenStatus` varchar(255) CHARACTER SET binary;
+ALTER TABLE `phabricator_user`.`user_oauthinfo`
+ COLLATE utf8_general_ci,
+ MODIFY `oauthProvider` varchar(255) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `oauthUID` varchar(255) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `accountURI` varchar(255) COLLATE utf8_general_ci,
+ MODIFY `accountName` varchar(255) COLLATE utf8_general_ci,
+ MODIFY `token` varchar(255) COLLATE utf8_general_ci,
+ MODIFY `tokenScope` varchar(255) COLLATE utf8_general_ci,
+ MODIFY `tokenStatus` varchar(255) COLLATE utf8_general_ci;
+
+ALTER TABLE `phabricator_user`.`user_preferences`
+ MODIFY `userPHID` varchar(64) CHARACTER SET binary;
+ALTER TABLE `phabricator_user`.`user_preferences`
+ COLLATE utf8_general_ci,
+ MODIFY `userPHID` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `preferences` longtext COLLATE utf8_bin NOT NULL;
+
+ALTER TABLE `phabricator_user`.`user_profile`
+ MODIFY `userPHID` varchar(64) CHARACTER SET binary,
+ MODIFY `title` varchar(255) CHARACTER SET binary,
+ MODIFY `blurb` text CHARACTER SET binary,
+ MODIFY `profileImagePHID` varchar(64) CHARACTER SET binary;
+ALTER TABLE `phabricator_user`.`user_profile`
+ COLLATE utf8_general_ci,
+ MODIFY `userPHID` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `title` varchar(255) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `blurb` text COLLATE utf8_general_ci NOT NULL,
+ MODIFY `profileImagePHID` varchar(64) COLLATE utf8_bin;
+
+ALTER TABLE `phabricator_user`.`user_sshkey`
+ MODIFY `userPHID` varchar(64) CHARACTER SET binary,
+ MODIFY `name` varchar(255) CHARACTER SET binary,
+ MODIFY `keyType` varchar(255) CHARACTER SET binary,
+ MODIFY `keyBody` varchar(32768) CHARACTER SET binary,
+ MODIFY `keyHash` varchar(32) CHARACTER SET binary,
+ MODIFY `keyComment` varchar(255) CHARACTER SET binary;
+ALTER TABLE `phabricator_user`.`user_sshkey`
+ COLLATE utf8_general_ci,
+ MODIFY `userPHID` varchar(64) COLLATE utf8_bin NOT NULL,
+ MODIFY `name` varchar(255) COLLATE utf8_general_ci,
+ MODIFY `keyType` varchar(255) COLLATE utf8_general_ci,
+ MODIFY `keyBody` varchar(32768) COLLATE utf8_bin,
+ MODIFY `keyHash` varchar(32) COLLATE utf8_bin NOT NULL,
+ MODIFY `keyComment` varchar(255) COLLATE utf8_general_ci;
+
+
+
+ALTER DATABASE `phabricator_worker` COLLATE utf8_general_ci;
+
+ALTER TABLE `phabricator_worker`.`worker_task`
+ MODIFY `taskClass` varchar(255) CHARACTER SET binary,
+ MODIFY `leaseOwner` varchar(255) CHARACTER SET binary;
+ALTER TABLE `phabricator_worker`.`worker_task`
+ COLLATE utf8_general_ci,
+ MODIFY `taskClass` varchar(255) COLLATE utf8_general_ci NOT NULL,
+ MODIFY `leaseOwner` varchar(255) COLLATE utf8_general_ci;
+
+ALTER TABLE `phabricator_worker`.`worker_taskdata`
+ COLLATE utf8_general_ci,
+ MODIFY `data` longtext COLLATE utf8_bin NOT NULL;
+
+
+
+ALTER DATABASE `phabricator_xhpastview` COLLATE utf8_general_ci;
+
+ALTER TABLE `phabricator_xhpastview`.`xhpastview_parsetree`
+ MODIFY `authorPHID` varchar(64) CHARACTER SET binary;
+ALTER TABLE `phabricator_xhpastview`.`xhpastview_parsetree`
+ COLLATE utf8_general_ci,
+ MODIFY `authorPHID` varchar(64) COLLATE utf8_bin,
+ MODIFY `input` longtext COLLATE utf8_bin NOT NULL,
+ MODIFY `stdout` longtext COLLATE utf8_bin NOT NULL;
+
+
+
diff --git a/scripts/sql/upgrade_schema.php b/scripts/sql/upgrade_schema.php
index 7f6c35d0af..8426e8dfc1 100755
--- a/scripts/sql/upgrade_schema.php
+++ b/scripts/sql/upgrade_schema.php
@@ -1,216 +1,217 @@
#!/usr/bin/env php
<?php
/*
* Copyright 2012 Facebook, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
$root = dirname(dirname(dirname(__FILE__)));
require_once $root.'/scripts/__init_script__.php';
phutil_require_module('phutil', 'console');
phutil_require_module('phabricator', 'infrastructure/setup/sql');
define('SCHEMA_VERSION_TABLE_NAME', 'schema_version');
// TODO: getopt() is super terrible, move to something less terrible.
$options = getopt('fhdv:u:p:m:') + array(
'v' => null, // Upgrade from specific version
'u' => null, // Override MySQL User
'p' => null, // Override MySQL Pass
'm' => null, // Specify max version to upgrade to
);
foreach (array('h', 'f', 'd') as $key) {
// By default, these keys are set to 'false' to indicate that the flag was
// passed.
if (array_key_exists($key, $options)) {
$options[$key] = true;
}
}
if (!empty($options['h']) || ($options['v'] && !is_numeric($options['v']))
|| ($options['m'] && !is_numeric($options['m']))) {
usage();
}
if (empty($options['f']) && empty($options['d'])) {
echo phutil_console_wrap(
"Before running this script, you should take down the Phabricator web ".
"interface and stop any running Phabricator daemons.");
if (!phutil_console_confirm('Are you ready to continue?')) {
echo "Cancelled.\n";
exit(1);
}
}
// Use always the version from the commandline if it is defined
$next_version = isset($options['v']) ? (int)$options['v'] : null;
$max_version = isset($options['m']) ? (int)$options['m'] : null;
$conf = DatabaseConfigurationProvider::getConfiguration();
if ($options['u']) {
$conn_user = $options['u'];
$conn_pass = $options['p'];
} else {
$conn_user = $conf->getUser();
$conn_pass = $conf->getPassword();
}
$conn_host = $conf->getHost();
// Split out port information, since the command-line client requires a
// separate flag for the port.
$uri = new PhutilURI('mysql://'.$conn_host);
if ($uri->getPort()) {
$conn_port = $uri->getPort();
$conn_bare_hostname = $uri->getDomain();
} else {
$conn_port = null;
$conn_bare_hostname = $conn_host;
}
$conn = new AphrontMySQLDatabaseConnection(
array(
'user' => $conn_user,
'pass' => $conn_pass,
'host' => $conn_host,
'database' => null,
));
try {
$create_sql = <<<END
CREATE DATABASE IF NOT EXISTS `phabricator_meta_data`;
END;
queryfx($conn, $create_sql);
$create_sql = <<<END
CREATE TABLE IF NOT EXISTS phabricator_meta_data.`schema_version` (
`version` INTEGER not null
);
END;
queryfx($conn, $create_sql);
// Get the version only if commandline argument wasn't given
if ($next_version === null) {
$version = queryfx_one(
$conn,
'SELECT * FROM phabricator_meta_data.%T',
SCHEMA_VERSION_TABLE_NAME);
if (!$version) {
print "*** No version information in the database ***\n";
print "*** Give the first patch version which to ***\n";
print "*** apply as the command line argument ***\n";
exit(-1);
}
$next_version = $version['version'] + 1;
}
$patches = PhabricatorSQLPatchList::getPatchList();
$patch_applied = false;
foreach ($patches as $patch) {
if ($patch['version'] < $next_version) {
continue;
}
if ($max_version && $patch['version'] > $max_version) {
continue;
}
$short_name = basename($patch['path']);
print "Applying patch {$short_name}...\n";
if (!empty($options['d'])) {
$patch_applied = true;
continue;
}
if ($conn_port) {
$port = '--port='.(int)$conn_port;
} else {
$port = null;
}
if (preg_match('/\.php$/', $patch['path'])) {
$schema_conn = $conn;
require_once $patch['path'];
} else {
list($stdout, $stderr) = execx(
- "mysql --user=%s --password=%s --host=%s {$port} < %s",
+ "mysql --user=%s --password=%s --host=%s {$port} ".
+ "--default-character-set=utf8 < %s",
$conn_user,
$conn_pass,
$conn_bare_hostname,
$patch['path']);
if ($stderr) {
print $stderr;
exit(-1);
}
}
// Patch was successful, update the db with the latest applied patch version
// 'DELETE' and 'INSERT' instead of update, because the table might be empty
queryfx(
$conn,
'DELETE FROM phabricator_meta_data.%T',
SCHEMA_VERSION_TABLE_NAME);
queryfx(
$conn,
'INSERT INTO phabricator_meta_data.%T VALUES (%d)',
SCHEMA_VERSION_TABLE_NAME,
$patch['version']);
$patch_applied = true;
}
if (!$patch_applied) {
print "Your database is already up-to-date.\n";
}
} catch (AphrontQueryAccessDeniedException $ex) {
echo
"ACCESS DENIED\n".
"The user '{$conn_user}' does not have sufficient MySQL privileges to\n".
"execute the schema upgrade. Use the -u and -p flags to run as a user\n".
"with more privileges (e.g., root).".
"\n\n".
"EXCEPTION:\n".
$ex->getMessage().
"\n\n";
exit(1);
}
function usage() {
echo
"usage: upgrade_schema.php [-v version] [-u user -p pass] [-f] [-h]".
"\n\n".
"Run 'upgrade_schema.php -u root -p hunter2' to override the configured ".
"default user.\n".
"Run 'upgrade_schema.php -v 12' to apply all patches starting from ".
"version 12. It is very unlikely you need to do this.\n".
"Run 'upgrade_schema.php -m 110' to apply all patches up to and ".
"including version 110 (but nothing past).\n".
"Use the -f flag to upgrade noninteractively, without prompting.\n".
"Use the -d flag to do a dry run - patches that would be applied ".
"will be listed, but not applied.\n".
"Use the -h flag to show this help.\n";
exit(1);
}
diff --git a/src/storage/connection/mysql/AphrontMySQLDatabaseConnection.php b/src/storage/connection/mysql/AphrontMySQLDatabaseConnection.php
index b9adc7a7a9..f65998a261 100644
--- a/src/storage/connection/mysql/AphrontMySQLDatabaseConnection.php
+++ b/src/storage/connection/mysql/AphrontMySQLDatabaseConnection.php
@@ -1,334 +1,335 @@
<?php
/*
* Copyright 2012 Facebook, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* @group storage
*/
class AphrontMySQLDatabaseConnection extends AphrontDatabaseConnection {
private $config;
private $connection;
private $nextError;
private static $connectionCache = array();
public function __construct(array $configuration) {
$this->configuration = $configuration;
}
public function escapeString($string) {
$this->requireConnection();
return mysql_real_escape_string($string, $this->connection);
}
public function escapeColumnName($name) {
return '`'.str_replace('`', '\\`', $name).'`';
}
public function escapeMultilineComment($comment) {
// These can either terminate a comment, confuse the hell out of the parser,
// make MySQL execute the comment as a query, or, in the case of semicolon,
// are quasi-dangerous because the semicolon could turn a broken query into
// a working query plus an ignored query.
static $map = array(
'--' => '(DOUBLEDASH)',
'*/' => '(STARSLASH)',
'//' => '(SLASHSLASH)',
'#' => '(HASH)',
'!' => '(BANG)',
';' => '(SEMICOLON)',
);
$comment = str_replace(
array_keys($map),
array_values($map),
$comment);
// For good measure, kill anything else that isn't a nice printable
// character.
$comment = preg_replace('/[^\x20-\x7F]+/', ' ', $comment);
return '/* '.$comment.' */';
}
public function escapeStringForLikeClause($value) {
$value = $this->escapeString($value);
// Ideally the query shouldn't be modified after safely escaping it,
// but we need to escape _ and % within LIKE terms.
$value = str_replace(
// Even though we've already escaped, we need to replace \ with \\
// because MYSQL unescapes twice inside a LIKE clause. See note
// at mysql.com. However, if the \ is being used to escape a single
// quote ('), then the \ should not be escaped. Thus, after all \
// are replaced with \\, we need to revert instances of \\' back to
// \'.
array('\\', '\\\\\'', '_', '%'),
array('\\\\', '\\\'', '\_', '\%'),
$value);
return $value;
}
private function getConfiguration($key, $default = null) {
return idx($this->configuration, $key, $default);
}
private function closeConnection() {
if ($this->connection) {
$this->connection = null;
$key = $this->getConnectionCacheKey();
unset(self::$connectionCache[$key]);
}
}
private function getConnectionCacheKey() {
$user = $this->getConfiguration('user');
$host = $this->getConfiguration('host');
$database = $this->getConfiguration('database');
return "{$user}:{$host}:{$database}";
}
private function establishConnection() {
$this->closeConnection();
$key = $this->getConnectionCacheKey();
if (isset(self::$connectionCache[$key])) {
$this->connection = self::$connectionCache[$key];
return;
}
$start = microtime(true);
if (!function_exists('mysql_connect')) {
// We have to '@' the actual call since it can spew all sorts of silly
// noise, but it will also silence fatals caused by not having MySQL
// installed, which has bitten me on three separate occasions. Make sure
// such failures are explicit and loud.
throw new Exception(
"About to call mysql_connect(), but the PHP MySQL extension is not ".
"available!");
}
$user = $this->getConfiguration('user');
$host = $this->getConfiguration('host');
$database = $this->getConfiguration('database');
$profiler = PhutilServiceProfiler::getInstance();
$call_id = $profiler->beginServiceCall(
array(
'type' => 'connect',
'host' => $host,
'database' => $database,
));
$retries = max(1, PhabricatorEnv::getEnvConfig('mysql.connection-retries'));
while ($retries--) {
try {
$conn = @mysql_connect(
$host,
$user,
$this->getConfiguration('pass'),
$new_link = true,
$flags = 0);
if (!$conn) {
$errno = mysql_errno();
$error = mysql_error();
throw new AphrontQueryConnectionException(
"Attempt to connect to {$user}@{$host} failed with error ".
"#{$errno}: {$error}.", $errno);
}
if ($database !== null) {
$ret = @mysql_select_db($database, $conn);
if (!$ret) {
$this->throwQueryException($conn);
}
+ mysql_set_charset('utf8');
}
$profiler->endServiceCall($call_id, array());
break;
} catch (Exception $ex) {
if ($retries && $ex->getCode() == 2003) {
$class = get_class($ex);
$message = $ex->getMessage();
phlog("Retrying ({$retries}) after {$class}: {$message}");
} else {
$profiler->endServiceCall($call_id, array());
throw $ex;
}
}
}
self::$connectionCache[$key] = $conn;
$this->connection = $conn;
}
public function getInsertID() {
return mysql_insert_id($this->requireConnection());
}
public function getAffectedRows() {
return mysql_affected_rows($this->requireConnection());
}
public function getTransactionKey() {
return (int)$this->requireConnection();
}
private function requireConnection() {
if (!$this->connection) {
$this->establishConnection();
}
return $this->connection;
}
public function selectAllResults() {
$result = array();
$res = $this->lastResult;
if ($res == null) {
throw new Exception('No query result to fetch from!');
}
while (($row = mysql_fetch_assoc($res)) !== false) {
$result[] = $row;
}
return $result;
}
public function executeRawQuery($raw_query) {
$this->lastResult = null;
$retries = max(1, PhabricatorEnv::getEnvConfig('mysql.connection-retries'));
while ($retries--) {
try {
$this->requireConnection();
// TODO: Do we need to include transactional statements here?
$is_write = !preg_match('/^(SELECT|SHOW|EXPLAIN)\s/', $raw_query);
if ($is_write) {
AphrontWriteGuard::willWrite();
}
$start = microtime(true);
$profiler = PhutilServiceProfiler::getInstance();
$call_id = $profiler->beginServiceCall(
array(
'type' => 'query',
'config' => $this->configuration,
'query' => $raw_query,
'write' => $is_write,
));
$result = @mysql_query($raw_query, $this->connection);
$profiler->endServiceCall($call_id, array());
if ($this->nextError) {
$result = null;
}
if ($result) {
$this->lastResult = $result;
break;
}
$this->throwQueryException($this->connection);
} catch (AphrontQueryConnectionLostException $ex) {
if ($this->isInsideTransaction()) {
// Zero out the transaction state to prevent a second exception
// ("program exited with open transaction") from being thrown, since
// we're about to throw a more relevant/useful one instead.
$state = $this->getTransactionState();
while ($state->getDepth()) {
$state->decreaseDepth();
}
// We can't close the connection before this because
// isInsideTransaction() and getTransactionState() depend on the
// connection.
$this->closeConnection();
throw $ex;
}
$this->closeConnection();
if (!$retries) {
throw $ex;
}
$class = get_class($ex);
$message = $ex->getMessage();
phlog("Retrying ({$retries}) after {$class}: {$message}");
}
}
}
private function throwQueryException($connection) {
if ($this->nextError) {
$errno = $this->nextError;
$error = 'Simulated error.';
$this->nextError = null;
} else {
$errno = mysql_errno($connection);
$error = mysql_error($connection);
}
$exmsg = "#{$errno}: {$error}";
switch ($errno) {
case 2013: // Connection Dropped
case 2006: // Gone Away
throw new AphrontQueryConnectionLostException($exmsg);
case 1213: // Deadlock
case 1205: // Lock wait timeout exceeded
throw new AphrontQueryRecoverableException($exmsg);
case 1062: // Duplicate Key
// NOTE: In some versions of MySQL we get a key name back here, but
// older versions just give us a key index ("key 2") so it's not
// portable to parse the key out of the error and attach it to the
// exception.
throw new AphrontQueryDuplicateKeyException($exmsg);
case 1044: // Access denied to database
case 1045: // Access denied (auth)
case 1142: // Access denied to table
case 1143: // Access denied to column
throw new AphrontQueryAccessDeniedException($exmsg);
case 1146: // No such table
case 1154: // Unknown column "..." in field list
throw new AphrontQuerySchemaException($exmsg);
default:
// TODO: 1064 is syntax error, and quite terrible in production.
throw new AphrontQueryException($exmsg);
}
}
/**
* Force the next query to fail with a simulated error. This should be used
* ONLY for unit tests.
*/
public function simulateErrorOnNextQuery($error) {
$this->nextError = $error;
return $this;
}
}

File Metadata

Mime Type
text/x-diff
Expires
Sun, Jul 27, 11:41 PM (1 w, 9 h ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
186270
Default Alt Text
(70 KB)

Event Timeline