From 7bea116b00454564e05bb98a059554ed0ad56005 Mon Sep 17 00:00:00 2001 From: Joshua Spence Date: Mon, 1 Jun 2015 15:35:13 +1000 Subject: [PATCH] Change migrations to not rely on "arcanist project" classes Summary: Ref T7604. Change two migrations to query arcanist project information using `queryfx` directly to avoid the need for the `LiskDAO` fields to exist. Test Plan: Ran the following commands to verify that things weren't majorly broken: - `./bin/storage upgrade --apply phabricator:20150503.repositorysymbols.2.php` - `./bin/storage upgrade --no-quickstart --namespace test` Reviewers: #blessed_reviewers, epriestley Reviewed By: #blessed_reviewers, epriestley Subscribers: Korvin, epriestley Maniphest Tasks: T7604 Differential Revision: https://secure.phabricator.com/D13011 --- .../20150503.repositorysymbols.2.php | 19 ++++++----- .../sql/patches/131.migraterevisionquery.php | 34 +------------------ 2 files changed, 12 insertions(+), 41 deletions(-) diff --git a/resources/sql/autopatches/20150503.repositorysymbols.2.php b/resources/sql/autopatches/20150503.repositorysymbols.2.php index eda6b5ed4b..a3a380dadd 100644 --- a/resources/sql/autopatches/20150503.repositorysymbols.2.php +++ b/resources/sql/autopatches/20150503.repositorysymbols.2.php @@ -1,26 +1,29 @@ setViewer(PhabricatorUser::getOmnipotentUser()) - ->needRepositories(true) - ->execute(); - $table = new PhabricatorRepositorySymbol(); $conn_w = $table->establishConnection('w'); +$projects = queryfx_all( + $conn_w, + 'SELECT * FROM %T', + 'repository_arcanistproject'); + foreach ($projects as $project) { - $repo = $project->getRepository(); + $repo = id(new PhabricatorRepositoryQuery()) + ->setViewer(PhabricatorUser::getOmnipotentUser()) + ->withIDs(array($project['repository'])) + ->executeOne(); if (!$repo) { continue; } - echo pht("Migrating symbols for '%s' project...\n", $project->getName()); + echo pht("Migrating symbols for '%s' project...\n", $project['name']); queryfx( $conn_w, 'UPDATE %T SET repositoryPHID = %s WHERE arcanistProjectID = %d', $table->getTableName(), $repo->getPHID(), - $project->getID()); + $project['id']); } diff --git a/resources/sql/patches/131.migraterevisionquery.php b/resources/sql/patches/131.migraterevisionquery.php index 316c7cdee2..c3f97a04a5 100644 --- a/resources/sql/patches/131.migraterevisionquery.php +++ b/resources/sql/patches/131.migraterevisionquery.php @@ -1,35 +1,3 @@ openTransaction(); -$table->beginReadLocking(); -$conn_w = $table->establishConnection('w'); - -echo pht('Migrating revisions')."\n"; -do { - $revisions = $table->loadAllWhere('branchName IS NULL LIMIT 1000'); - - foreach ($revisions as $revision) { - echo '.'; - - $diff = $revision->loadActiveDiff(); - if (!$diff) { - continue; - } - - $branch_name = $diff->getBranch(); - $arc_project_phid = $diff->getArcanistProjectPHID(); - - queryfx( - $conn_w, - 'UPDATE %T SET branchName = %s, arcanistProjectPHID = %s WHERE id = %d', - $table->getTableName(), - $branch_name, - $arc_project_phid, - $revision->getID()); - } -} while (count($revisions) == 1000); - -$table->endReadLocking(); -$table->saveTransaction(); -echo "\n".pht('Done.')."\n"; +// This migration has been dropped, see T7604 for details.