From 75fa580f3f3f1c66a4b236e1af5046170ec451ba Mon Sep 17 00:00:00 2001 From: epriestley Date: Fri, 21 Jun 2013 18:41:14 -0700 Subject: [PATCH] Add PHIDs to DifferentialComments Summary: Ref T2222. This adds PHIDs to all Differential comments so I can migrate the inlinecommment table to transaction_comment in the next diff. @wez, this will issue a few million queries for Facebook (roughly, one for each Differential comment ever made). It's safe to skip the `.php` half of the patch, bring Phabricator up normally, and then apply this patch with Phabricator running if that eases the migration, although the next few diffs will probably be downtime-required migrations so maybe it's easier to just schedule some downtime. Test Plan: Ran migration locally. Verified existing comments and new comments received PHIDs. Reviewers: btrahan Reviewed By: btrahan CC: wez, aran Maniphest Tasks: T2222 Differential Revision: https://secure.phabricator.com/D6266 --- .../sql/patches/20130621.diffcommentphid.sql | 5 ++ .../patches/20130621.diffcommentphidmig.php | 23 +++++ src/__celerity_resource_map__.php | 90 +++++++++---------- .../storage/DifferentialComment.php | 7 ++ .../patch/PhabricatorBuiltinPatchList.php | 8 ++ 5 files changed, 88 insertions(+), 45 deletions(-) create mode 100644 resources/sql/patches/20130621.diffcommentphid.sql create mode 100644 resources/sql/patches/20130621.diffcommentphidmig.php diff --git a/resources/sql/patches/20130621.diffcommentphid.sql b/resources/sql/patches/20130621.diffcommentphid.sql new file mode 100644 index 0000000000..5cacc68c55 --- /dev/null +++ b/resources/sql/patches/20130621.diffcommentphid.sql @@ -0,0 +1,5 @@ +ALTER TABLE {$NAMESPACE}_differential.differential_comment + ADD phid VARCHAR(64) NOT NULL COLLATE utf8_bin; + +ALTER TABLE {$NAMESPACE}_differential.differential_comment + ADD KEY `key_phid` (phid); diff --git a/resources/sql/patches/20130621.diffcommentphidmig.php b/resources/sql/patches/20130621.diffcommentphidmig.php new file mode 100644 index 0000000000..92fcb6fd09 --- /dev/null +++ b/resources/sql/patches/20130621.diffcommentphidmig.php @@ -0,0 +1,23 @@ +establishConnection('r'); + +echo "Assigning transaction PHIDs to DifferentialComments.\n"; +foreach (new LiskRawMigrationIterator($conn, 'differential_comment') as $row) { + $id = $row['id']; + echo "Migrating comment #{$id}...\n"; + if ($row['phid']) { + continue; + } + + queryfx( + $conn, + 'UPDATE %T SET phid = %s WHERE id = %d', + 'differential_comment', + PhabricatorPHID::generateNewPHID( + PhabricatorPHIDConstants::PHID_TYPE_XACT, + PhabricatorPHIDConstants::PHID_TYPE_DREV), + $id); +} + +echo "Done.\n"; diff --git a/src/__celerity_resource_map__.php b/src/__celerity_resource_map__.php index cc345fcd34..f5f162a9d0 100644 --- a/src/__celerity_resource_map__.php +++ b/src/__celerity_resource_map__.php @@ -3723,7 +3723,7 @@ celerity_register_resource_map(array( ), 'phui-form-css' => array( - 'uri' => '/res/eb478e83/rsrc/css/phui/phui-form.css', + 'uri' => '/res/c02b6db7/rsrc/css/phui/phui-form.css', 'type' => 'css', 'requires' => array( @@ -4057,7 +4057,7 @@ celerity_register_resource_map(array( ), array( 'packages' => array( - '695153c6' => + 'e8febb7b' => array( 'name' => 'core.pkg.css', 'symbols' => @@ -4105,7 +4105,7 @@ celerity_register_resource_map(array( 40 => 'phabricator-property-list-view-css', 41 => 'phabricator-tag-view-css', ), - 'uri' => '/res/pkg/695153c6/core.pkg.css', + 'uri' => '/res/pkg/e8febb7b/core.pkg.css', 'type' => 'css', ), 'f2ad0683' => @@ -4299,16 +4299,16 @@ celerity_register_resource_map(array( 'reverse' => array( 'aphront-attached-file-view-css' => 'adc3c36d', - 'aphront-dialog-view-css' => '695153c6', - 'aphront-error-view-css' => '695153c6', - 'aphront-form-view-css' => '695153c6', - 'aphront-list-filter-view-css' => '695153c6', - 'aphront-pager-view-css' => '695153c6', - 'aphront-panel-view-css' => '695153c6', - 'aphront-table-view-css' => '695153c6', - 'aphront-tokenizer-control-css' => '695153c6', - 'aphront-tooltip-css' => '695153c6', - 'aphront-typeahead-control-css' => '695153c6', + 'aphront-dialog-view-css' => 'e8febb7b', + 'aphront-error-view-css' => 'e8febb7b', + 'aphront-form-view-css' => 'e8febb7b', + 'aphront-list-filter-view-css' => 'e8febb7b', + 'aphront-pager-view-css' => 'e8febb7b', + 'aphront-panel-view-css' => 'e8febb7b', + 'aphront-table-view-css' => 'e8febb7b', + 'aphront-tokenizer-control-css' => 'e8febb7b', + 'aphront-tooltip-css' => 'e8febb7b', + 'aphront-typeahead-control-css' => 'e8febb7b', 'differential-changeset-view-css' => 'dd27a69b', 'differential-core-view-css' => 'dd27a69b', 'differential-inline-comment-editor' => '9488bb69', @@ -4322,7 +4322,7 @@ celerity_register_resource_map(array( 'differential-table-of-contents-css' => 'dd27a69b', 'diffusion-commit-view-css' => 'c8ce2d88', 'diffusion-icons-css' => 'c8ce2d88', - 'global-drag-and-drop-css' => '695153c6', + 'global-drag-and-drop-css' => 'e8febb7b', 'inline-comment-summary-css' => 'dd27a69b', 'javelin-aphlict' => 'f2ad0683', 'javelin-behavior' => 'a9f14d76', @@ -4396,55 +4396,55 @@ celerity_register_resource_map(array( 'javelin-util' => 'a9f14d76', 'javelin-vector' => 'a9f14d76', 'javelin-workflow' => 'a9f14d76', - 'lightbox-attachment-css' => '695153c6', + 'lightbox-attachment-css' => 'e8febb7b', 'maniphest-task-summary-css' => 'adc3c36d', 'maniphest-transaction-detail-css' => 'adc3c36d', - 'phabricator-action-list-view-css' => '695153c6', - 'phabricator-application-launch-view-css' => '695153c6', + 'phabricator-action-list-view-css' => 'e8febb7b', + 'phabricator-application-launch-view-css' => 'e8febb7b', 'phabricator-busy' => 'f2ad0683', 'phabricator-content-source-view-css' => 'dd27a69b', - 'phabricator-core-css' => '695153c6', - 'phabricator-crumbs-view-css' => '695153c6', + 'phabricator-core-css' => 'e8febb7b', + 'phabricator-crumbs-view-css' => 'e8febb7b', 'phabricator-drag-and-drop-file-upload' => '9488bb69', 'phabricator-dropdown-menu' => 'f2ad0683', 'phabricator-file-upload' => 'f2ad0683', - 'phabricator-filetree-view-css' => '695153c6', - 'phabricator-flag-css' => '695153c6', - 'phabricator-form-view-css' => '695153c6', - 'phabricator-header-view-css' => '695153c6', + 'phabricator-filetree-view-css' => 'e8febb7b', + 'phabricator-flag-css' => 'e8febb7b', + 'phabricator-form-view-css' => 'e8febb7b', + 'phabricator-header-view-css' => 'e8febb7b', 'phabricator-hovercard' => 'f2ad0683', - 'phabricator-jump-nav' => '695153c6', + 'phabricator-jump-nav' => 'e8febb7b', 'phabricator-keyboard-shortcut' => 'f2ad0683', 'phabricator-keyboard-shortcut-manager' => 'f2ad0683', - 'phabricator-main-menu-view' => '695153c6', + 'phabricator-main-menu-view' => 'e8febb7b', 'phabricator-menu-item' => 'f2ad0683', - 'phabricator-nav-view-css' => '695153c6', + 'phabricator-nav-view-css' => 'e8febb7b', 'phabricator-notification' => 'f2ad0683', - 'phabricator-notification-css' => '695153c6', - 'phabricator-notification-menu-css' => '695153c6', - 'phabricator-object-item-list-view-css' => '695153c6', + 'phabricator-notification-css' => 'e8febb7b', + 'phabricator-notification-menu-css' => 'e8febb7b', + 'phabricator-object-item-list-view-css' => 'e8febb7b', 'phabricator-object-selector-css' => 'dd27a69b', 'phabricator-phtize' => 'f2ad0683', 'phabricator-prefab' => 'f2ad0683', 'phabricator-project-tag-css' => 'adc3c36d', - 'phabricator-property-list-view-css' => '695153c6', - 'phabricator-remarkup-css' => '695153c6', + 'phabricator-property-list-view-css' => 'e8febb7b', + 'phabricator-remarkup-css' => 'e8febb7b', 'phabricator-shaped-request' => '9488bb69', - 'phabricator-side-menu-view-css' => '695153c6', - 'phabricator-standard-page-view' => '695153c6', - 'phabricator-tag-view-css' => '695153c6', + 'phabricator-side-menu-view-css' => 'e8febb7b', + 'phabricator-standard-page-view' => 'e8febb7b', + 'phabricator-tag-view-css' => 'e8febb7b', 'phabricator-textareautils' => 'f2ad0683', 'phabricator-tooltip' => 'f2ad0683', - 'phabricator-transaction-view-css' => '695153c6', - 'phabricator-zindex-css' => '695153c6', - 'phui-button-css' => '695153c6', - 'phui-form-css' => '695153c6', - 'phui-icon-view-css' => '695153c6', - 'phui-spacing-css' => '695153c6', - 'sprite-apps-large-css' => '695153c6', - 'sprite-gradient-css' => '695153c6', - 'sprite-icons-css' => '695153c6', - 'sprite-menu-css' => '695153c6', - 'syntax-highlighting-css' => '695153c6', + 'phabricator-transaction-view-css' => 'e8febb7b', + 'phabricator-zindex-css' => 'e8febb7b', + 'phui-button-css' => 'e8febb7b', + 'phui-form-css' => 'e8febb7b', + 'phui-icon-view-css' => 'e8febb7b', + 'phui-spacing-css' => 'e8febb7b', + 'sprite-apps-large-css' => 'e8febb7b', + 'sprite-gradient-css' => 'e8febb7b', + 'sprite-icons-css' => 'e8febb7b', + 'sprite-menu-css' => 'e8febb7b', + 'syntax-highlighting-css' => 'e8febb7b', ), )); diff --git a/src/applications/differential/storage/DifferentialComment.php b/src/applications/differential/storage/DifferentialComment.php index 401b291b51..8182f6a883 100644 --- a/src/applications/differential/storage/DifferentialComment.php +++ b/src/applications/differential/storage/DifferentialComment.php @@ -20,6 +20,12 @@ final class DifferentialComment extends DifferentialDAO private $arbitraryDiffForFacebook; + public function generatePHID() { + return PhabricatorPHID::generateNewPHID( + PhabricatorPHIDConstants::PHID_TYPE_XACT, + PhabricatorPHIDConstants::PHID_TYPE_DREV); + } + public function giveFacebookSomeArbitraryDiff(DifferentialDiff $diff) { $this->arbitraryDiffForFacebook = $diff; return $this; @@ -27,6 +33,7 @@ final class DifferentialComment extends DifferentialDAO public function getConfiguration() { return array( + self::CONFIG_AUX_PHID => true, self::CONFIG_SERIALIZATION => array( 'metadata' => self::SERIALIZATION_JSON, ), diff --git a/src/infrastructure/storage/patch/PhabricatorBuiltinPatchList.php b/src/infrastructure/storage/patch/PhabricatorBuiltinPatchList.php index 22bbbd631c..32a49918d0 100644 --- a/src/infrastructure/storage/patch/PhabricatorBuiltinPatchList.php +++ b/src/infrastructure/storage/patch/PhabricatorBuiltinPatchList.php @@ -1382,6 +1382,14 @@ final class PhabricatorBuiltinPatchList extends PhabricatorSQLPatchList { 'type' => 'sql', 'name' => $this->getPatchPath('20130620.diffxactions.sql'), ), + '20130621.diffcommentphid.sql' => array( + 'type' => 'sql', + 'name' => $this->getPatchPath('20130621.diffcommentphid.sql'), + ), + '20130621.diffcommentphidmig.php' => array( + 'type' => 'php', + 'name' => $this->getPatchPath('20130621.diffcommentphidmig.php'), + ), ); } }