mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-18 04:42:40 +01:00
parent
76e69f0be5
commit
2fc7afcbc4
1 changed files with 5 additions and 80 deletions
|
@ -1,82 +1,7 @@
|
|||
<?php
|
||||
|
||||
$table_w = new PhabricatorRepository();
|
||||
$conn_w = $table_w->establishConnection('w');
|
||||
|
||||
// Repository and Project share a database.
|
||||
$conn_r = $table_w->establishConnection('r');
|
||||
$projects_table = 'repository_arcanistproject';
|
||||
|
||||
$raw_projects_data = queryfx_all($conn_r, 'SELECT * FROM %T', $projects_table);
|
||||
$raw_projects_data = ipull($raw_projects_data, null, 'id');
|
||||
|
||||
$repository_ids = ipull($raw_projects_data, 'repositoryID');
|
||||
if (!$repository_ids) {
|
||||
return;
|
||||
}
|
||||
|
||||
$repositories = id(new PhabricatorRepositoryQuery())
|
||||
->setViewer(PhabricatorUser::getOmnipotentUser())
|
||||
->withIDs($repository_ids)
|
||||
->execute();
|
||||
|
||||
$projects_to_repo_ids_map = ipull($raw_projects_data, 'repositoryID', 'phid');
|
||||
$projects_to_repos_map = array();
|
||||
foreach ($projects_to_repo_ids_map as $projectPHID => $repositoryID) {
|
||||
$repo = idx($repositories, $repositoryID);
|
||||
if ($repo) {
|
||||
$projects_to_repos_map[$projectPHID] = $repo->getPHID();
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($raw_projects_data as $project_row) {
|
||||
$repositoryID = idx($project_row, 'repositoryID');
|
||||
$repo = idx($repositories, $repositoryID);
|
||||
|
||||
if (!$repo) {
|
||||
continue;
|
||||
}
|
||||
|
||||
echo pht(
|
||||
"Migrating symbols configuration for '%s' project...\n",
|
||||
idx($project_row, 'name', '???'));
|
||||
|
||||
$symbol_index_projects = $project_row['symbolIndexProjects'];
|
||||
$symbol_index_projects = nonempty($symbol_index_projects, '[]');
|
||||
try {
|
||||
$symbol_index_projects = phutil_json_decode($symbol_index_projects);
|
||||
} catch (PhutilJSONParserException $ex) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$sources = $repo->getDetail('symbol-sources', array());
|
||||
foreach ($symbol_index_projects as $index_project) {
|
||||
$sources[] = idx($projects_to_repos_map, $index_project);
|
||||
}
|
||||
$sources = array_filter($sources);
|
||||
$sources = array_unique($sources);
|
||||
|
||||
$repo->setDetail('symbol-sources', $sources);
|
||||
|
||||
$languages = $project_row['symbolIndexLanguages'];
|
||||
$languages = nonempty($languages, '[]');
|
||||
try {
|
||||
$languages = phutil_json_decode($languages);
|
||||
} catch (PhutilJSONParserException $ex) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$languages = array_merge(
|
||||
$repo->getDetail('symbol-languages', array()),
|
||||
$languages);
|
||||
$languages = array_unique($languages);
|
||||
|
||||
$repo->setDetail('symbol-languages', $languages);
|
||||
|
||||
queryfx(
|
||||
$conn_w,
|
||||
'UPDATE %T SET details = %s WHERE id = %d',
|
||||
$table_w->getTableName(),
|
||||
json_encode($repo->getDetails()),
|
||||
$repo->getID());
|
||||
}
|
||||
// NOTE: This migration moved existing symbol configuration from Arcanist
|
||||
// Projects to Repositories. Like "20150503.repositorysymbols.2.php", it stopped
|
||||
// running cleanly about two months later, after Spaces were introduced. Since
|
||||
// this data is easy to rebuild, just stop running the migration. See T8691 and
|
||||
// T8697.
|
||||
|
|
Loading…
Reference in a new issue