mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-30 10:42:41 +01:00
8cb273a053
Summary: Depends on D19181. Ref T11015. This nukes duplicates from the table if they exist, then adds a unique key. (Duplicates should not exist and can not be added with any recent version of the web UI.) Test Plan: - Tried to add duplicates with web UI, didn't have any luck. - Explicitly added duplicates with manual `INSERT`s. - Viewed packages in web UI and saw duplicates. - Ran migrations, got a clean purge and a nice unique key. - There's still no way to actually hit a duplicate key error in the UI (unless you can collide hashes, I suppose), this is purely a correctness/robustness change. Maniphest Tasks: T11015 Differential Revision: https://secure.phabricator.com/D19182
22 lines
545 B
PHP
22 lines
545 B
PHP
<?php
|
|
|
|
$table = new PhabricatorOwnersPath();
|
|
$conn = $table->establishConnection('w');
|
|
|
|
$seen = array();
|
|
foreach (new LiskMigrationIterator($table) as $path) {
|
|
$package_id = $path->getPackageID();
|
|
$repository_phid = $path->getRepositoryPHID();
|
|
$path_index = $path->getPathIndex();
|
|
|
|
if (!isset($seen[$package_id][$repository_phid][$path_index])) {
|
|
$seen[$package_id][$repository_phid][$path_index] = true;
|
|
continue;
|
|
}
|
|
|
|
queryfx(
|
|
$conn,
|
|
'DELETE FROM %T WHERE id = %d',
|
|
$table->getTableName(),
|
|
$path->getID());
|
|
}
|