@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Add missing expected keys and uniqueness

Summary:
Ref T1191.

- Adds definitions for missing keys and keys with wrong uniqueness. Generally, I defined these before fixing the key query to actually pull all keys and support uniqueness.
- Moves "key uniqueness" to note severity; this is fixable (probably?) and there are no remaining issues.
- Moves "Missing Key" to note severity; missing keys are fixable and all remaining missing keys are really missing (either missing edge keys, or missing PHID keys):

{F210089}

- Moves "Surplus Key" to note seveirty; surplus keys are fixable all remaining surplus keys are really surplus (duplicate key in Harbormaster, key on unused column in Worker):

{F210090}

Test Plan:
- Vetted missing/surplus/unique messages.
- 146 issues remaining.

Reviewers: btrahan

Reviewed By: btrahan

Subscribers: epriestley

Maniphest Tasks: T1191

Differential Revision: https://secure.phabricator.com/D10590

+280 -6
+17
src/applications/audit/storage/PhabricatorAuditTransactionComment.php
··· 24 24 25 25 public function getConfiguration() { 26 26 $config = parent::getConfiguration(); 27 + 27 28 $config[self::CONFIG_COLUMN_SCHEMA] = array( 28 29 'commitPHID' => 'phid?', 29 30 'pathID' => 'id?', ··· 35 36 'replyToCommentPHID' => 'phid?', 36 37 'legacyCommentID' => 'id?', 37 38 ) + $config[self::CONFIG_COLUMN_SCHEMA]; 39 + 40 + $config[self::CONFIG_KEY_SCHEMA] = array( 41 + 'key_path' => array( 42 + 'columns' => array('pathID'), 43 + ), 44 + 'key_draft' => array( 45 + 'columns' => array('authorPHID', 'transactionPHID'), 46 + ), 47 + 'key_commit' => array( 48 + 'columns' => array('commitPHID'), 49 + ), 50 + 'key_legacy' => array( 51 + 'columns' => array('legacyCommentID'), 52 + ), 53 + ) + $config[self::CONFIG_KEY_SCHEMA]; 54 + 38 55 return $config; 39 56 } 40 57
+5
src/applications/auth/storage/PhabricatorAuthFactorConfig.php
··· 19 19 'factorName' => 'text', 20 20 'factorSecret' => 'text', 21 21 ), 22 + self::CONFIG_KEY_SCHEMA => array( 23 + 'key_user' => array( 24 + 'columns' => array('userPHID'), 25 + ), 26 + ), 22 27 ) + parent::getConfiguration(); 23 28 } 24 29
+9
src/applications/auth/storage/PhabricatorAuthProviderConfig.php
··· 40 40 'shouldAllowUnlink' => 'bool', 41 41 'shouldTrustEmails' => 'bool', 42 42 ), 43 + self::CONFIG_KEY_SCHEMA => array( 44 + 'key_provider' => array( 45 + 'columns' => array('providerType', 'providerDomain'), 46 + 'unique' => true, 47 + ), 48 + 'key_class' => array( 49 + 'columns' => array('providerClass'), 50 + ), 51 + ), 43 52 ) + parent::getConfiguration(); 44 53 } 45 54
+4
src/applications/auth/storage/PhabricatorAuthTemporaryToken.php
··· 22 22 self::CONFIG_KEY_SCHEMA => array( 23 23 'key_token' => array( 24 24 'columns' => array('objectPHID', 'tokenType', 'tokenCode'), 25 + 'unique' => true, 26 + ), 27 + 'key_expires' => array( 28 + 'columns' => array('tokenExpires'), 25 29 ), 26 30 ), 27 31 ) + parent::getConfiguration();
+8
src/applications/cache/storage/PhabricatorCacheSchemaSpec.php
··· 20 20 array( 21 21 'PRIMARY' => array( 22 22 'columns' => array('id'), 23 + 'unique' => true, 23 24 ), 24 25 'key_cacheKeyHash' => array( 25 26 'columns' => array('cacheKeyHash'), 27 + 'unique' => true, 28 + ), 29 + 'key_cacheCreated' => array( 30 + 'columns' => array('cacheCreated'), 31 + ), 32 + 'key_ttl' => array( 33 + 'columns' => array('cacheExpires'), 26 34 ), 27 35 )); 28 36
+4
src/applications/cache/storage/PhabricatorMarkupCache.php
··· 21 21 self::CONFIG_KEY_SCHEMA => array( 22 22 'cacheKey' => array( 23 23 'columns' => array('cacheKey'), 24 + 'unique' => true, 25 + ), 26 + 'dateCreated' => array( 27 + 'columns' => array('dateCreated'), 24 28 ), 25 29 ), 26 30 ) + parent::getConfiguration();
+5
src/applications/calendar/storage/PhabricatorCalendarEvent.php
··· 43 43 'status' => 'uint32', 44 44 'description' => 'text', 45 45 ), 46 + self::CONFIG_KEY_SCHEMA => array( 47 + 'userPHID_dateFrom' => array( 48 + 'columns' => array('userPHID', 'dateTo'), 49 + ), 50 + ), 46 51 ) + parent::getConfiguration(); 47 52 } 48 53
+1
src/applications/calendar/storage/PhabricatorCalendarHoliday.php
··· 15 15 self::CONFIG_KEY_SCHEMA => array( 16 16 'day' => array( 17 17 'columns' => array('day'), 18 + 'unique' => true, 18 19 ), 19 20 ), 20 21 ) + parent::getConfiguration();
+1
src/applications/chatlog/storage/PhabricatorChatLogChannel.php
··· 20 20 self::CONFIG_KEY_SCHEMA => array( 21 21 'key_channel' => array( 22 22 'columns' => array('channelName', 'serviceType', 'serviceName'), 23 + 'unique' => true, 23 24 ), 24 25 ), 25 26 ) + parent::getConfiguration();
+5
src/applications/chatlog/storage/PhabricatorChatLogEvent.php
··· 21 21 'type' => 'text4', 22 22 'message' => 'text', 23 23 ), 24 + self::CONFIG_KEY_SCHEMA => array( 25 + 'channel' => array( 26 + 'columns' => array('epoch'), 27 + ), 28 + ), 24 29 ) + parent::getConfiguration(); 25 30 } 26 31
+2
src/applications/conduit/storage/PhabricatorConduitCertificateToken.php
··· 13 13 self::CONFIG_KEY_SCHEMA => array( 14 14 'userPHID' => array( 15 15 'columns' => array('userPHID'), 16 + 'unique' => true, 16 17 ), 17 18 'token' => array( 18 19 'columns' => array('token'), 20 + 'unique' => true, 19 21 ), 20 22 ), 21 23 ) + parent::getConfiguration();
+5
src/applications/conduit/storage/PhabricatorConduitConnectionLog.php
··· 15 15 'clientDescription' => 'text255?', 16 16 'username' => 'text255?', 17 17 ), 18 + self::CONFIG_KEY_SCHEMA => array( 19 + 'key_created' => array( 20 + 'columns' => array('dateCreated'), 21 + ), 22 + ), 18 23 ) + parent::getConfiguration(); 19 24 } 20 25
+11
src/applications/conduit/storage/PhabricatorConduitMethodCallLog.php
··· 20 20 'duration' => 'uint64', 21 21 'callerPHID' => 'phid?', 22 22 ), 23 + self::CONFIG_KEY_SCHEMA => array( 24 + 'key_date' => array( 25 + 'columns' => array('dateCreated'), 26 + ), 27 + 'key_method' => array( 28 + 'columns' => array('method'), 29 + ), 30 + 'key_callermethod' => array( 31 + 'columns' => array('callerPHID', 'method'), 32 + ), 33 + ), 23 34 ) + parent::getConfiguration(); 24 35 } 25 36
+8 -1
src/applications/config/controller/PhabricatorConfigDatabaseIssueController.php
··· 89 89 foreach ($issues as $issue) { 90 90 $const = $issue[4]; 91 91 92 + $database_link = phutil_tag( 93 + 'a', 94 + array( 95 + 'href' => $this->getApplicationURI('/database/'.$issue[0].'/'), 96 + ), 97 + $issue[0]); 98 + 92 99 $rows[] = array( 93 100 $this->renderIcon( 94 101 PhabricatorConfigStorageSchema::getIssueStatus($const)), 95 - $issue[0], 102 + $database_link, 96 103 $issue[1], 97 104 $issue[2], 98 105 $issue[3],
+4 -4
src/applications/config/schema/PhabricatorConfigStorageSchema.php
··· 169 169 public static function getIssueStatus($issue) { 170 170 switch ($issue) { 171 171 case self::ISSUE_MISSING: 172 - case self::ISSUE_MISSINGKEY: 173 172 case self::ISSUE_SUBFAIL: 174 - return self::STATUS_FAIL; 175 173 case self::ISSUE_SURPLUS: 176 - case self::ISSUE_SURPLUSKEY: 174 + return self::STATUS_FAIL; 177 175 case self::ISSUE_SUBWARN: 178 176 case self::ISSUE_COLUMNTYPE: 179 177 case self::ISSUE_KEYCOLUMNS: 180 - case self::ISSUE_UNIQUE: 181 178 case self::ISSUE_NULLABLE: 182 179 return self::STATUS_WARN; 183 180 case self::ISSUE_SUBNOTE: 184 181 case self::ISSUE_CHARSET: 185 182 case self::ISSUE_COLLATION: 183 + case self::ISSUE_MISSINGKEY: 184 + case self::ISSUE_SURPLUSKEY: 185 + case self::ISSUE_UNIQUE: 186 186 return self::STATUS_NOTE; 187 187 default: 188 188 throw new Exception(pht('Unknown schema issue "%s"!', $issue));
+1
src/applications/config/storage/PhabricatorConfigEntry.php
··· 22 22 self::CONFIG_KEY_SCHEMA => array( 23 23 'key_name' => array( 24 24 'columns' => array('namespace', 'configKey'), 25 + 'unique' => true, 25 26 ), 26 27 ), 27 28 ) + parent::getConfiguration();
+7
src/applications/conpherence/storage/ConpherenceParticipant.php
··· 23 23 self::CONFIG_KEY_SCHEMA => array( 24 24 'conpherencePHID' => array( 25 25 'columns' => array('conpherencePHID', 'participantPHID'), 26 + 'unique' => true, 27 + ), 28 + 'unreadCount' => array( 29 + 'columns' => array('participantPHID', 'participationStatus'), 30 + ), 31 + 'participationIndex' => array( 32 + 'columns' => array('participantPHID', 'dateTouched', 'id'), 26 33 ), 27 34 ), 28 35 ) + parent::getConfiguration();
+1
src/applications/conpherence/storage/ConpherenceThread.php
··· 36 36 'key_phid' => null, 37 37 'phid' => array( 38 38 'columns' => array('phid'), 39 + 'unique' => true, 39 40 ), 40 41 ), 41 42 ) + parent::getConfiguration();
+9
src/applications/conpherence/storage/ConpherenceTransactionComment.php
··· 11 11 12 12 public function getConfiguration() { 13 13 $config = parent::getConfiguration(); 14 + 14 15 $config[self::CONFIG_COLUMN_SCHEMA] = array( 15 16 'conpherencePHID' => 'phid?', 16 17 ) + $config[self::CONFIG_COLUMN_SCHEMA]; 18 + 19 + $config[self::CONFIG_KEY_SCHEMA] = array( 20 + 'key_draft' => array( 21 + 'columns' => array('authorPHID', 'conpherencePHID', 'transactionPHID'), 22 + 'unique' => true, 23 + ), 24 + ) + $config[self::CONFIG_KEY_SCHEMA]; 25 + 17 26 return $config; 18 27 } 19 28
+8
src/applications/daemon/storage/PhabricatorDaemonLog.php
··· 31 31 'envHash' => 'bytes40', 32 32 'status' => 'text8', 33 33 ), 34 + self::CONFIG_KEY_SCHEMA => array( 35 + 'status' => array( 36 + 'columns' => array('status'), 37 + ), 38 + 'dateCreated' => array( 39 + 'columns' => array('dateCreated'), 40 + ), 41 + ), 34 42 ) + parent::getConfiguration(); 35 43 } 36 44
+5
src/applications/daemon/storage/PhabricatorDaemonLogEvent.php
··· 14 14 'logType' => 'text4', 15 15 'message' => 'text', 16 16 ), 17 + self::CONFIG_KEY_SCHEMA => array( 18 + 'logID' => array( 19 + 'columns' => array('logID', 'epoch'), 20 + ), 21 + ), 17 22 ) + parent::getConfiguration(); 18 23 } 19 24
+1
src/applications/dashboard/storage/PhabricatorDashboardInstall.php
··· 22 22 self::CONFIG_KEY_SCHEMA => array( 23 23 'objectPHID' => array( 24 24 'columns' => array('objectPHID', 'applicationClass'), 25 + 'unique' => true, 25 26 ), 26 27 ), 27 28 ) + parent::getConfiguration();
+9
src/applications/doorkeeper/storage/DoorkeeperExternalObject.php
··· 31 31 self::CONFIG_KEY_SCHEMA => array( 32 32 'key_object' => array( 33 33 'columns' => array('objectKey'), 34 + 'unique' => true, 35 + ), 36 + 'key_full' => array( 37 + 'columns' => array( 38 + 'applicationType', 39 + 'applicationDomain', 40 + 'objectType', 41 + 'objectID', 42 + ), 34 43 ), 35 44 ), 36 45 ) + parent::getConfiguration();
+1
src/applications/draft/storage/PhabricatorDraft.php
··· 21 21 self::CONFIG_KEY_SCHEMA => array( 22 22 'authorPHID' => array( 23 23 'columns' => array('authorPHID', 'draftKey'), 24 + 'unique' => true, 24 25 ), 25 26 ), 26 27 ) + parent::getConfiguration();
+1
src/applications/drydock/storage/DrydockLease.php
··· 55 55 'key_phid' => null, 56 56 'phid' => array( 57 57 'columns' => array('phid'), 58 + 'unique' => true, 58 59 ), 59 60 ), 60 61 ) + parent::getConfiguration();
+11
src/applications/drydock/storage/DrydockLog.php
··· 19 19 'leaseID' => 'id?', 20 20 'message' => 'text', 21 21 ), 22 + self::CONFIG_KEY_SCHEMA => array( 23 + 'resourceID' => array( 24 + 'columns' => array('resourceID', 'epoch'), 25 + ), 26 + 'leaseID' => array( 27 + 'columns' => array('leaseID', 'epoch'), 28 + ), 29 + 'epoch' => array( 30 + 'columns' => array('epoch'), 31 + ), 32 + ), 22 33 ) + parent::getConfiguration(); 23 34 } 24 35
+1
src/applications/drydock/storage/DrydockResource.php
··· 33 33 'key_phid' => null, 34 34 'phid' => array( 35 35 'columns' => array('phid'), 36 + 'unique' => true, 36 37 ), 37 38 ), 38 39 ) + parent::getConfiguration();
+2
src/applications/feed/storage/PhabricatorFeedStoryData.php
··· 23 23 'key_phid' => null, 24 24 'phid' => array( 25 25 'columns' => array('phid'), 26 + 'unique' => true, 26 27 ), 27 28 'chronologicalKey' => array( 28 29 'columns' => array('chronologicalKey'), 30 + 'unique' => true, 29 31 ), 30 32 ), 31 33 ) + parent::getConfiguration();
+4
src/applications/feed/storage/PhabricatorFeedStoryReference.php
··· 17 17 'PRIMARY' => null, 18 18 'objectPHID' => array( 19 19 'columns' => array('objectPHID', 'chronologicalKey'), 20 + 'unique' => true, 21 + ), 22 + 'chronologicalKey' => array( 23 + 'columns' => array('chronologicalKey'), 20 24 ), 21 25 ), 22 26 ) + parent::getConfiguration();
+14 -1
src/applications/files/storage/PhabricatorFile.php
··· 68 68 self::CONFIG_COLUMN_SCHEMA => array( 69 69 'name' => 'text255?', 70 70 'mimeType' => 'text255?', 71 - 'byteSize' => 'uint64?', 71 + 'byteSize' => 'uint64', 72 72 'storageEngine' => 'text32', 73 73 'storageFormat' => 'text32', 74 74 'storageHandle' => 'text255', ··· 83 83 'key_phid' => null, 84 84 'phid' => array( 85 85 'columns' => array('phid'), 86 + 'unique' => true, 87 + ), 88 + 'authorPHID' => array( 89 + 'columns' => array('authorPHID'), 90 + ), 91 + 'contentHash' => array( 92 + 'columns' => array('contentHash'), 93 + ), 94 + 'key_ttl' => array( 95 + 'columns' => array('ttl'), 96 + ), 97 + 'key_dateCreated' => array( 98 + 'columns' => array('dateCreated'), 86 99 ), 87 100 ), 88 101 ) + parent::getConfiguration();
+1
src/applications/files/storage/PhabricatorFileTransactionComment.php
··· 17 17 $config[self::CONFIG_KEY_SCHEMA] = array( 18 18 'key_draft' => array( 19 19 'columns' => array('authorPHID', 'transactionPHID'), 20 + 'unique' => true, 20 21 ), 21 22 ) + $config[self::CONFIG_KEY_SCHEMA]; 22 23 return $config;
+4
src/applications/files/storage/PhabricatorTransformedFile.php
··· 14 14 self::CONFIG_KEY_SCHEMA => array( 15 15 'originalPHID' => array( 16 16 'columns' => array('originalPHID', 'transform'), 17 + 'unique' => true, 18 + ), 19 + 'transformedPHID' => array( 20 + 'columns' => array('transformedPHID'), 17 21 ), 18 22 ), 19 23 ) + parent::getConfiguration();
+4
src/applications/flag/storage/PhabricatorFlag.php
··· 23 23 self::CONFIG_KEY_SCHEMA => array( 24 24 'ownerPHID' => array( 25 25 'columns' => array('ownerPHID', 'type', 'objectPHID'), 26 + 'unique' => true, 27 + ), 28 + 'objectPHID' => array( 29 + 'columns' => array('objectPHID'), 26 30 ), 27 31 ), 28 32 ) + parent::getConfiguration();
+8
src/applications/fund/storage/FundBacker.php
··· 32 32 'status' => 'text32', 33 33 'amountInCents' => 'uint32', 34 34 ), 35 + self::CONFIG_KEY_SCHEMA => array( 36 + 'key_initiative' => array( 37 + 'columns' => array('initiativePHID'), 38 + ), 39 + 'key_backer' => array( 40 + 'columns' => array('backerPHID'), 41 + ), 42 + ), 35 43 ) + parent::getConfiguration(); 36 44 } 37 45
+8
src/applications/fund/storage/FundInitiative.php
··· 53 53 'description' => 'text', 54 54 'status' => 'text32', 55 55 ), 56 + self::CONFIG_KEY_SCHEMA => array( 57 + 'key_status' => array( 58 + 'columns' => array('status'), 59 + ), 60 + 'key_owner' => array( 61 + 'columns' => array('ownerPHID'), 62 + ), 63 + ), 56 64 ) + parent::getConfiguration(); 57 65 } 58 66
+1
src/applications/herald/storage/transcript/HeraldTranscript.php
··· 16 16 17 17 protected $objectPHID; 18 18 protected $dryRun; 19 + protected $garbageCollected = 0; 19 20 20 21 const TABLE_SAVED_HEADER = 'herald_savedheader'; 21 22
+5
src/applications/legalpad/storage/LegalpadDocument.php
··· 62 62 'signatureType' => 'text4', 63 63 'preamble' => 'text', 64 64 ), 65 + self::CONFIG_KEY_SCHEMA => array( 66 + 'key_creator' => array( 67 + 'columns' => array('creatorPHID', 'dateModified'), 68 + ), 69 + ), 65 70 ) + parent::getConfiguration(); 66 71 } 67 72
+1
src/applications/legalpad/storage/LegalpadDocumentBody.php
··· 24 24 self::CONFIG_KEY_SCHEMA => array( 25 25 'key_document' => array( 26 26 'columns' => array('documentPHID', 'version'), 27 + 'unique' => true, 27 28 ), 28 29 ), 29 30 ) + parent::getConfiguration();
+11
src/applications/legalpad/storage/LegalpadDocumentSignature.php
··· 37 37 'isExemption' => 'bool', 38 38 'exemptionPHID' => 'phid?', 39 39 ), 40 + self::CONFIG_KEY_SCHEMA => array( 41 + 'key_signer' => array( 42 + 'columns' => array('signerPHID', 'dateModified'), 43 + ), 44 + 'secretKey' => array( 45 + 'columns' => array('secretKey'), 46 + ), 47 + 'key_document' => array( 48 + 'columns' => array('documentPHID', 'signerPHID', 'documentVersion'), 49 + ), 50 + ), 40 51 ) + parent::getConfiguration(); 41 52 } 42 53
+1
src/applications/legalpad/storage/LegalpadTransactionComment.php
··· 32 32 $config[self::CONFIG_KEY_SCHEMA] = array( 33 33 'key_draft' => array( 34 34 'columns' => array('authorPHID', 'documentID', 'transactionPHID'), 35 + 'unique' => true, 35 36 ), 36 37 ) + $config[self::CONFIG_KEY_SCHEMA]; 37 38 return $config;
+7
src/applications/macro/storage/PhabricatorFileImageMacro.php
··· 54 54 self::CONFIG_KEY_SCHEMA => array( 55 55 'name' => array( 56 56 'columns' => array('name'), 57 + 'unique' => true, 58 + ), 59 + 'key_disabled' => array( 60 + 'columns' => array('isDisabled'), 61 + ), 62 + 'key_dateCreated' => array( 63 + 'columns' => array('dateCreated'), 57 64 ), 58 65 ), 59 66 ) + parent::getConfiguration();
+4
src/applications/notification/storage/PhabricatorFeedStoryNotification.php
··· 20 20 'PRIMARY' => null, 21 21 'userPHID' => array( 22 22 'columns' => array('userPHID', 'chronologicalKey'), 23 + 'unique' => true, 24 + ), 25 + 'userPHID_2' => array( 26 + 'columns' => array('userPHID', 'hasViewed', 'primaryObjectPHID'), 23 27 ), 24 28 ), 25 29 ) + parent::getConfiguration();
+16
src/applications/nuance/storage/NuanceRequestorSource.php
··· 5 5 6 6 protected $requestorPHID; 7 7 protected $sourcePHID; 8 + protected $sourceKey; 8 9 protected $data; 9 10 10 11 public function getConfiguration() { 11 12 return array( 12 13 self::CONFIG_SERIALIZATION => array( 13 14 'data' => self::SERIALIZATION_JSON, 15 + ), 16 + self::CONFIG_COLUMN_SCHEMA => array( 17 + 'sourceKey' => 'text128', 18 + ), 19 + self::CONFIG_KEY_SCHEMA => array( 20 + 'key_source_key' => array( 21 + 'columns' => array('sourcePHID', 'sourceKey'), 22 + 'unique' => true, 23 + ), 24 + 'key_requestor' => array( 25 + 'columns' => array('requestorPHID', 'id'), 26 + ), 27 + 'key_source' => array( 28 + 'columns' => array('sourcePHID', 'id'), 29 + ), 14 30 ), 15 31 ) + parent::getConfiguration(); 16 32 }
+1
src/applications/pholio/storage/PholioTransactionComment.php
··· 28 28 $config[self::CONFIG_KEY_SCHEMA] = array( 29 29 'key_draft' => array( 30 30 'columns' => array('authorPHID', 'imageID', 'transactionPHID'), 31 + 'unique' => true, 31 32 ), 32 33 ) + $config[self::CONFIG_KEY_SCHEMA]; 33 34
+13
src/applications/slowvote/storage/PhabricatorSlowvoteChoice.php
··· 6 6 protected $optionID; 7 7 protected $authorPHID; 8 8 9 + public function getConfiguration() { 10 + return array( 11 + self::CONFIG_KEY_SCHEMA => array( 12 + 'pollID' => array( 13 + 'columns' => array('pollID'), 14 + ), 15 + 'authorPHID' => array( 16 + 'columns' => array('authorPHID'), 17 + ), 18 + ), 19 + ) + parent::getConfiguration(); 20 + } 21 + 9 22 }
+5
src/applications/slowvote/storage/PhabricatorSlowvoteOption.php
··· 10 10 self::CONFIG_COLUMN_SCHEMA => array( 11 11 'name' => 'text255', 12 12 ), 13 + self::CONFIG_KEY_SCHEMA => array( 14 + 'pollID' => array( 15 + 'columns' => array('pollID'), 16 + ), 17 + ), 13 18 ) + parent::getConfiguration(); 14 19 } 15 20
+1
src/applications/slowvote/storage/PhabricatorSlowvotePoll.php
··· 58 58 'key_phid' => null, 59 59 'phid' => array( 60 60 'columns' => array('phid'), 61 + 'unique' => true, 61 62 ), 62 63 ), 63 64 ) + parent::getConfiguration();
+8
src/applications/system/storage/PhabricatorSystemActionLog.php
··· 17 17 'action' => 'text32', 18 18 'score' => 'double', 19 19 ), 20 + self::CONFIG_KEY_SCHEMA => array( 21 + 'key_epoch' => array( 22 + 'columns' => array('epoch'), 23 + ), 24 + 'key_action' => array( 25 + 'columns' => array('actorHash', 'action', 'epoch'), 26 + ), 27 + ), 20 28 ) + parent::getConfiguration(); 21 29 } 22 30
+5
src/applications/system/storage/PhabricatorSystemDestructionLog.php
··· 17 17 'objectPHID' => 'phid?', 18 18 'objectMonogram' => 'text64?', 19 19 ), 20 + self::CONFIG_KEY_SCHEMA => array( 21 + 'key_epoch' => array( 22 + 'columns' => array('epoch'), 23 + ), 24 + ), 20 25 ) + parent::getConfiguration(); 21 26 } 22 27
+4
src/applications/tokens/storage/PhabricatorTokenCount.php
··· 15 15 self::CONFIG_KEY_SCHEMA => array( 16 16 'key_objectPHID' => array( 17 17 'columns' => array('objectPHID'), 18 + 'unique' => true, 19 + ), 20 + 'key_count' => array( 21 + 'columns' => array('tokenCount'), 18 22 ), 19 23 ), 20 24 ) + parent::getConfiguration();
+7
src/applications/tokens/storage/PhabricatorTokenGiven.php
··· 14 14 self::CONFIG_KEY_SCHEMA => array( 15 15 'key_all' => array( 16 16 'columns' => array('objectPHID', 'authorPHID'), 17 + 'unique' => true, 18 + ), 19 + 'key_author' => array( 20 + 'columns' => array('authorPHID'), 21 + ), 22 + 'key_token' => array( 23 + 'columns' => array('tokenPHID'), 17 24 ), 18 25 ), 19 26 ) + parent::getConfiguration();
+1
src/applications/xhprof/storage/PhabricatorXHProfSample.php
··· 23 23 self::CONFIG_KEY_SCHEMA => array( 24 24 'filePHID' => array( 25 25 'columns' => array('filePHID'), 26 + 'unique' => true, 26 27 ), 27 28 ), 28 29 ) + parent::getConfiguration();