Summary: See D9986, we missed this one. Test Plan: `grep` Reviewers: joshuaspence, btrahan, bizrad6 Reviewed By: bizrad6 Subscribers: epriestley Differential Revision: https://secure.phabricator.com/D10098
		
			
				
	
	
		
			93 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			93 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
$project_table = new PhabricatorProject();
 | 
						|
$conn_w = $project_table->establishConnection('w');
 | 
						|
$conn_w->openTransaction();
 | 
						|
 | 
						|
$src_table = 'project_legacytransaction';
 | 
						|
$dst_table = 'project_transaction';
 | 
						|
 | 
						|
echo "Migrating Project transactions to new format...\n";
 | 
						|
 | 
						|
$content_source = PhabricatorContentSource::newForSource(
 | 
						|
  PhabricatorContentSource::SOURCE_LEGACY,
 | 
						|
  array())->serialize();
 | 
						|
 | 
						|
$rows = new LiskRawMigrationIterator($conn_w, $src_table);
 | 
						|
foreach ($rows as $row) {
 | 
						|
  $id = $row['id'];
 | 
						|
 | 
						|
  $project_id = $row['projectID'];
 | 
						|
 | 
						|
  echo "Migrating transaction #{$id} (Project {$project_id})...\n";
 | 
						|
 | 
						|
  $project_row = queryfx_one(
 | 
						|
    $conn_w,
 | 
						|
    'SELECT phid FROM %T WHERE id = %d',
 | 
						|
    $project_table->getTableName(),
 | 
						|
    $project_id);
 | 
						|
  if (!$project_row) {
 | 
						|
    continue;
 | 
						|
  }
 | 
						|
 | 
						|
  $project_phid = $project_row['phid'];
 | 
						|
 | 
						|
  $type_map = array(
 | 
						|
    'name' => PhabricatorProjectTransaction::TYPE_NAME,
 | 
						|
    'members' => PhabricatorProjectTransaction::TYPE_MEMBERS,
 | 
						|
    'status' => PhabricatorProjectTransaction::TYPE_STATUS,
 | 
						|
    'canview' => PhabricatorTransactions::TYPE_VIEW_POLICY,
 | 
						|
    'canedit' => PhabricatorTransactions::TYPE_EDIT_POLICY,
 | 
						|
    'canjoin' => PhabricatorTransactions::TYPE_JOIN_POLICY,
 | 
						|
  );
 | 
						|
 | 
						|
  $new_type = idx($type_map, $row['transactionType']);
 | 
						|
  if (!$new_type) {
 | 
						|
    continue;
 | 
						|
  }
 | 
						|
 | 
						|
  $xaction_phid = PhabricatorPHID::generateNewPHID(
 | 
						|
    PhabricatorApplicationTransactionTransactionPHIDType::TYPECONST,
 | 
						|
    PhabricatorProjectProjectPHIDType::TYPECONST);
 | 
						|
 | 
						|
  queryfx(
 | 
						|
    $conn_w,
 | 
						|
    'INSERT IGNORE INTO %T
 | 
						|
      (phid, authorPHID, objectPHID,
 | 
						|
        viewPolicy, editPolicy, commentPHID, commentVersion, transactionType,
 | 
						|
        oldValue, newValue, contentSource, metadata,
 | 
						|
        dateCreated, dateModified)
 | 
						|
      VALUES
 | 
						|
      (%s, %s, %s,
 | 
						|
        %s, %s, %ns, %d, %s,
 | 
						|
        %s, %s, %s, %s,
 | 
						|
        %d, %d)',
 | 
						|
    $dst_table,
 | 
						|
 | 
						|
    // PHID, Author, Object
 | 
						|
    $xaction_phid,
 | 
						|
    $row['authorPHID'],
 | 
						|
    $project_phid,
 | 
						|
 | 
						|
    // View, Edit, Comment, Version, Type
 | 
						|
    'public',
 | 
						|
    $row['authorPHID'],
 | 
						|
    null,
 | 
						|
    0,
 | 
						|
    $new_type,
 | 
						|
 | 
						|
    // Old, New, Source, Meta,
 | 
						|
    $row['oldValue'],
 | 
						|
    $row['newValue'],
 | 
						|
    $content_source,
 | 
						|
    '{}',
 | 
						|
 | 
						|
    // Created, Modified
 | 
						|
    $row['dateCreated'],
 | 
						|
    $row['dateModified']);
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
$conn_w->saveTransaction();
 | 
						|
echo "Done.\n";
 |