[ Index ]

PHP Cross Reference of Phabricator

title

Body

[close]

/resources/sql/patches/ -> 20131020.pxactionmig.php (source)

   1  <?php
   2  
   3  $project_table = new PhabricatorProject();
   4  $conn_w = $project_table->establishConnection('w');
   5  $conn_w->openTransaction();
   6  
   7  $src_table = 'project_legacytransaction';
   8  $dst_table = 'project_transaction';
   9  
  10  echo "Migrating Project transactions to new format...\n";
  11  
  12  $content_source = PhabricatorContentSource::newForSource(
  13    PhabricatorContentSource::SOURCE_LEGACY,
  14    array())->serialize();
  15  
  16  $rows = new LiskRawMigrationIterator($conn_w, $src_table);
  17  foreach ($rows as $row) {
  18    $id = $row['id'];
  19  
  20    $project_id = $row['projectID'];
  21  
  22    echo "Migrating transaction #{$id} (Project {$project_id})...\n";
  23  
  24    $project_row = queryfx_one(
  25      $conn_w,
  26      'SELECT phid FROM %T WHERE id = %d',
  27      $project_table->getTableName(),
  28      $project_id);
  29    if (!$project_row) {
  30      continue;
  31    }
  32  
  33    $project_phid = $project_row['phid'];
  34  
  35    $type_map = array(
  36      'name' => PhabricatorProjectTransaction::TYPE_NAME,
  37      'members' => PhabricatorProjectTransaction::TYPE_MEMBERS,
  38      'status' => PhabricatorProjectTransaction::TYPE_STATUS,
  39      'canview' => PhabricatorTransactions::TYPE_VIEW_POLICY,
  40      'canedit' => PhabricatorTransactions::TYPE_EDIT_POLICY,
  41      'canjoin' => PhabricatorTransactions::TYPE_JOIN_POLICY,
  42    );
  43  
  44    $new_type = idx($type_map, $row['transactionType']);
  45    if (!$new_type) {
  46      continue;
  47    }
  48  
  49    $xaction_phid = PhabricatorPHID::generateNewPHID(
  50      PhabricatorApplicationTransactionTransactionPHIDType::TYPECONST,
  51      PhabricatorProjectProjectPHIDType::TYPECONST);
  52  
  53    queryfx(
  54      $conn_w,
  55      'INSERT IGNORE INTO %T
  56        (phid, authorPHID, objectPHID,
  57          viewPolicy, editPolicy, commentPHID, commentVersion, transactionType,
  58          oldValue, newValue, contentSource, metadata,
  59          dateCreated, dateModified)
  60        VALUES
  61        (%s, %s, %s,
  62          %s, %s, %ns, %d, %s,
  63          %s, %s, %s, %s,
  64          %d, %d)',
  65      $dst_table,
  66  
  67      // PHID, Author, Object
  68      $xaction_phid,
  69      $row['authorPHID'],
  70      $project_phid,
  71  
  72      // View, Edit, Comment, Version, Type
  73      'public',
  74      $row['authorPHID'],
  75      null,
  76      0,
  77      $new_type,
  78  
  79      // Old, New, Source, Meta,
  80      $row['oldValue'],
  81      $row['newValue'],
  82      $content_source,
  83      '{}',
  84  
  85      // Created, Modified
  86      $row['dateCreated'],
  87      $row['dateModified']);
  88  
  89  }
  90  
  91  $conn_w->saveTransaction();
  92  echo "Done.\n";


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