1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-29 18:22:41 +01:00

Remove a very old Herald garbage collection migration

Summary:
Ref T13048. This migration is from January 2012 and probably only impacted Facebook.

It references `HeraldRepetitionPolicyConfig`, which I'd like to change significantly. I initially just replaced the constant with a literal `0`, but I don't think there's any actual value in retaining this migration nowadays.

The cost of removing this migration is: if you installed Phabricator before January 2012 and haven't upgraded since then, you'll have a few more rows in the `APPLIED` table than necessary. Herald will still work correctly.

Test Plan: Reading.

Reviewers: amckinley

Reviewed By: amckinley

Maniphest Tasks: T13048

Differential Revision: https://secure.phabricator.com/D18924
This commit is contained in:
epriestley 2018-01-24 19:12:48 -08:00
parent 5529458e14
commit 042c43d6d8

View file

@ -1,39 +1,8 @@
<?php <?php
echo pht('Cleaning up old Herald rule applied rows...')."\n"; // Once, this migration deleted some unnecessary rows written by Herald before
$table = new HeraldRule(); // January 2012. These rows don't hurt anything, they just cluttered up the
$table->openTransaction(); // database a bit.
$table->beginReadLocking();
$rules = $table->loadAll(); // The migration was removed in January 2018 to make maintenance on rule
foreach ($rules as $key => $rule) { // repetition policies easier.
$first_policy = HeraldRepetitionPolicyConfig::toInt(
HeraldRepetitionPolicyConfig::FIRST);
if ($rule->getRepetitionPolicy() != $first_policy) {
unset($rules[$key]);
}
}
$conn_w = $table->establishConnection('w');
$clause = '';
if ($rules) {
$clause = qsprintf(
$conn_w,
'WHERE ruleID NOT IN (%Ld)',
mpull($rules, 'getID'));
}
echo pht('This may take a moment')."\n";
do {
queryfx(
$conn_w,
'DELETE FROM %T %Q LIMIT 1000',
HeraldRule::TABLE_RULE_APPLIED,
$clause);
echo '.';
} while ($conn_w->getAffectedRows());
$table->endReadLocking();
$table->saveTransaction();
echo "\n".pht('Done.')."\n";