diff --git a/scripts/util/purge_cache.php b/scripts/util/purge_cache.php index 8db1063a54..5c8da7b0bb 100755 --- a/scripts/util/purge_cache.php +++ b/scripts/util/purge_cache.php @@ -1,135 +1,160 @@ #!/usr/bin/env php establishConnection('w'), - 'TRUNCATE TABLE %T', - DifferentialChangeset::TABLE_CACHE); + if ($changesets) { + echo "Purging changeset cache for changesets ". + implode($changesets, ",")."\n"; + queryfx( + $table->establishConnection('w'), + 'DELETE FROM %T WHERE id IN (%Ld)', + DifferentialChangeset::TABLE_CACHE, + $changesets); + } else { + echo "Purging changeset cache...\n"; + queryfx( + $table->establishConnection('w'), + 'TRUNCATE TABLE %T', + DifferentialChangeset::TABLE_CACHE); + } echo "Done.\n"; } if ($purge_differential) { echo "Purging Differential comment cache...\n"; $table = new DifferentialComment(); queryfx( $table->establishConnection('w'), 'UPDATE %T SET cache = NULL', $table->getTableName()); echo "Done.\n"; } if ($purge_maniphest) { echo "Purging Maniphest comment cache...\n"; $table = new ManiphestTransaction(); queryfx( $table->establishConnection('w'), 'UPDATE %T SET cache = NULL', $table->getTableName()); echo "Done.\n"; } echo "Ok, caches purged.\n"; function usage($message) { echo "Usage Error: {$message}"; echo "\n\n"; echo "Run 'purge_cache.php --help' for detailed help.\n"; exit(1); } function help() { $help = <<