Page MenuHomePhabricator

D14149.diff
No OneTemporary

D14149.diff

diff --git a/resources/sql/autopatches/20141222.maniphestprojtxn.php b/resources/sql/autopatches/20141222.maniphestprojtxn.php
--- a/resources/sql/autopatches/20141222.maniphestprojtxn.php
+++ b/resources/sql/autopatches/20141222.maniphestprojtxn.php
@@ -9,41 +9,53 @@
'edge:type' => PhabricatorProjectObjectHasProjectEdgeType::EDGECONST,
);
foreach (new LiskMigrationIterator($table) as $txn) {
- // ManiphestTransaction::TYPE_PROJECTS
- if ($txn->getTransactionType() == 'projects') {
- $old_value = mig20141222_build_edge_data(
- $txn->getOldValue(),
- $txn->getObjectPHID());
- $new_value = mig20141222_build_edge_data(
- $txn->getNewvalue(),
- $txn->getObjectPHID());
- queryfx(
- $conn_w,
- 'UPDATE %T SET '.
- 'transactionType = %s, oldValue = %s, newValue = %s, metaData = %s '.
- 'WHERE id = %d',
- $table->getTableName(),
- PhabricatorTransactions::TYPE_EDGE,
- json_encode($old_value),
- json_encode($new_value),
- json_encode($metadata),
- $txn->getID());
+ if ($txn->getTransactionType() != 'projects') {
+ continue;
}
+
+ $old_value = mig20141222_build_edge_data(
+ $txn->getOldValue(),
+ $txn->getObjectPHID());
+
+ $new_value = mig20141222_build_edge_data(
+ $txn->getNewValue(),
+ $txn->getObjectPHID());
+
+ queryfx(
+ $conn_w,
+ 'UPDATE %T SET '.
+ 'transactionType = %s, oldValue = %s, newValue = %s, metaData = %s '.
+ 'WHERE id = %d',
+ $table->getTableName(),
+ PhabricatorTransactions::TYPE_EDGE,
+ json_encode($old_value),
+ json_encode($new_value),
+ json_encode($metadata),
+ $txn->getID());
}
echo pht('Done.')."\n";
-function mig20141222_build_edge_data(array $project_phids, $task_phid) {
+function mig20141222_build_edge_data($project_phids, $task_phid) {
$edge_data = array();
+
+ // See T9464. If we didn't get a proper array value out of the transaction,
+ // just return an empty value so we can move forward.
+ if (!is_array($project_phids)) {
+ return $edge_data;
+ }
+
foreach ($project_phids as $project_phid) {
if (!is_scalar($project_phid)) {
continue;
}
+
$edge_data[$project_phid] = array(
'src' => $task_phid,
'type' => PhabricatorProjectObjectHasProjectEdgeType::EDGECONST,
'dst' => $project_phid,
);
}
+
return $edge_data;
}

File Metadata

Mime Type
text/plain
Expires
Sun, May 12, 12:21 PM (1 w, 3 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
6274840
Default Alt Text
D14149.diff (2 KB)

Event Timeline