Page MenuHomestyx hydra

No OneTemporary

diff --git a/resources/sql/autopatches/20150504.symbolsproject.1.php b/resources/sql/autopatches/20150504.symbolsproject.1.php
index e3c3db66e1..8ab77bbef4 100644
--- a/resources/sql/autopatches/20150504.symbolsproject.1.php
+++ b/resources/sql/autopatches/20150504.symbolsproject.1.php
@@ -1,68 +1,78 @@
<?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');
$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 = phutil_json_decode($symbol_index_projects);
+ $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 = phutil_json_decode($languages);
+ $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());
}

File Metadata

Mime Type
text/x-diff
Expires
Wed, Dec 3, 7:13 AM (7 h, 41 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
433199
Default Alt Text
(2 KB)

Event Timeline