[ Index ]

PHP Cross Reference of Phabricator

title

Body

[close]

/resources/sql/autopatches/ -> 20140805.boardcol.2.php (source)

   1  <?php
   2  
   3  // Was PhabricatorEdgeConfig::TYPE_COLUMN_HAS_OBJECT
   4  $type_has_object = 44;
   5  
   6  $column = new PhabricatorProjectColumn();
   7  $conn_w = $column->establishConnection('w');
   8  
   9  $rows = queryfx_all(
  10    $conn_w,
  11    'SELECT src, dst FROM %T WHERE type = %d',
  12    PhabricatorEdgeConfig::TABLE_NAME_EDGE,
  13    $type_has_object);
  14  
  15  $cols = array();
  16  foreach ($rows as $row) {
  17    $cols[$row['src']][] = $row['dst'];
  18  }
  19  
  20  $sql = array();
  21  foreach ($cols as $col_phid => $obj_phids) {
  22    echo "Migrating column '{$col_phid}'...\n";
  23    $column = id(new PhabricatorProjectColumn())->loadOneWhere(
  24      'phid = %s',
  25      $col_phid);
  26    if (!$column) {
  27      echo "Column '{$col_phid}' does not exist.\n";
  28      continue;
  29    }
  30  
  31    $sequence = 0;
  32    foreach ($obj_phids as $obj_phid) {
  33      $sql[] = qsprintf(
  34        $conn_w,
  35        '(%s, %s, %s, %d)',
  36        $column->getProjectPHID(),
  37        $column->getPHID(),
  38        $obj_phid,
  39        $sequence++);
  40    }
  41  }
  42  
  43  echo "Inserting rows...\n";
  44  foreach (PhabricatorLiskDAO::chunkSQL($sql) as $chunk) {
  45    queryfx(
  46      $conn_w,
  47      'INSERT INTO %T (boardPHID, columnPHID, objectPHID, sequence)
  48        VALUES %Q',
  49      id(new PhabricatorProjectColumnPosition())->getTableName(),
  50      $chunk);
  51  }
  52  
  53  echo "Done.\n";


Generated: Sun Nov 30 09:20:46 2014 Cross-referenced by PHPXref 0.7.1