From 8ebb1c166bcc9a452e22cd0f6f29aa0c497d50a7 Mon Sep 17 00:00:00 2001 From: Amir Sarabadani Date: Tue, 11 Sep 2018 10:39:53 +0200 Subject: [PATCH] Add part to update ctd_user_defined in populateChangeTagDef Change-Id: I8fa3fa95b259ed82e78f4c3de0f5e148c3586407 --- maintenance/populateChangeTagDef.php | 40 ++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/maintenance/populateChangeTagDef.php b/maintenance/populateChangeTagDef.php index b11b95fd72..7bec25ac97 100644 --- a/maintenance/populateChangeTagDef.php +++ b/maintenance/populateChangeTagDef.php @@ -39,6 +39,7 @@ class PopulateChangeTagDef extends LoggedUpdateMaintenance { true ); $this->addOption( 'populate-only', 'Do not update change_tag_def table' ); + $this->addOption( 'set-user-tags-only', 'Only update ctd_user_defined from valid_tag table' ); } public function execute() { @@ -61,10 +62,15 @@ class PopulateChangeTagDef extends LoggedUpdateMaintenance { __METHOD__ ) ) { + if ( $this->hasOption( 'set-user-tags-only' ) ) { + $this->setUserDefinedTags(); + return true; + } if ( !$this->hasOption( 'populate-only' ) ) { $this->updateCountTag(); } $this->backpopulateChangeTagId(); + $this->setUserDefinedTags(); } else { $this->updateCountTagId(); } @@ -75,6 +81,40 @@ class PopulateChangeTagDef extends LoggedUpdateMaintenance { return true; } + private function setUserDefinedTags() { + $dbr = $this->lbFactory->getMainLB()->getConnection( DB_REPLICA ); + + $userTags = $dbr->selectFieldValues( + 'valid_tag', + 'vt_tag', + [], + __METHOD__ + ); + + if ( empty( $userTags ) ) { + $this->output( "No user defined tags to set, moving on...\n" ); + return; + } + + if ( $this->hasOption( 'dry-run' ) ) { + $this->output( + 'These tags will have ctd_user_defined=1 : ' . implode( ', ', $userTags ) . "\n" + ); + return; + } + + $dbw = $this->lbFactory->getMainLB()->getConnection( DB_MASTER ); + + $dbw->update( + 'change_tag_def', + [ 'ctd_user_defined' => 1 ], + [ 'ctd_name' => $userTags ], + __METHOD__ + ); + $this->lbFactory->waitForReplication(); + $this->output( "Finished setting user defined tags in change_tag_def table\n" ); + } + private function updateCountTagId() { $dbr = $this->lbFactory->getMainLB()->getConnection( DB_REPLICA ); -- 2.20.1