<?php // Was PhabricatorEdgeConfig::TYPE_COLUMN_HAS_OBJECT $type_has_object = 44; $column = new PhabricatorProjectColumn(); $conn_w = $column->establishConnection('w'); $rows = queryfx_all( $conn_w, 'SELECT src, dst FROM %T WHERE type = %d', PhabricatorEdgeConfig::TABLE_NAME_EDGE, $type_has_object); $cols = array(); foreach ($rows as $row) { $cols[$row['src']][] = $row['dst']; } $sql = array(); foreach ($cols as $col_phid => $obj_phids) { echo pht("Migrating column '%s'...", $col_phid)."\n"; $column = id(new PhabricatorProjectColumn())->loadOneWhere( 'phid = %s', $col_phid); if (!$column) { echo pht("Column '%s' does not exist.", $col_phid)."\n"; continue; } $sequence = 0; foreach ($obj_phids as $obj_phid) { $sql[] = qsprintf( $conn_w, '(%s, %s, %s, %d)', $column->getProjectPHID(), $column->getPHID(), $obj_phid, $sequence++); } } echo pht('Inserting rows...')."\n"; foreach (PhabricatorLiskDAO::chunkSQL($sql) as $chunk) { queryfx( $conn_w, 'INSERT INTO %T (boardPHID, columnPHID, objectPHID, sequence) VALUES %Q', id(new PhabricatorProjectColumnPosition())->getTableName(), $chunk); } echo pht('Done.')."\n";