40 lines
		
	
	
		
			796 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
		
		
			
		
	
	
			40 lines
		
	
	
		
			796 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
| 
								 | 
							
								<?php
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								echo "Migrating macro authors...\n";
							 | 
						||
| 
								 | 
							
								foreach (new LiskMigrationIterator(new PhabricatorFileImageMacro()) as $macro) {
							 | 
						||
| 
								 | 
							
								  echo "Macro #".$macro->getID()."\n";
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if ($macro->getAuthorPHID()) {
							 | 
						||
| 
								 | 
							
								    // Already have an author; skip it.
							 | 
						||
| 
								 | 
							
								    continue;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (!$macro->getFilePHID()) {
							 | 
						||
| 
								 | 
							
								    // No valid file; skip it.
							 | 
						||
| 
								 | 
							
								    continue;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  $file = id(new PhabricatorFile())->loadOneWhere(
							 | 
						||
| 
								 | 
							
								    'phid = %s',
							 | 
						||
| 
								 | 
							
								    $macro->getFilePHID());
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (!$file) {
							 | 
						||
| 
								 | 
							
								    // Couldn't load the file; skip it.
							 | 
						||
| 
								 | 
							
								    continue;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (!$file->getAuthorPHID()) {
							 | 
						||
| 
								 | 
							
								    // File has no author; skip it.
							 | 
						||
| 
								 | 
							
								    continue;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  queryfx(
							 | 
						||
| 
								 | 
							
								    $macro->establishConnection('w'),
							 | 
						||
| 
								 | 
							
								    'UPDATE %T SET authorPHID = %s WHERE id = %d',
							 | 
						||
| 
								 | 
							
								    $macro->getTableName(),
							 | 
						||
| 
								 | 
							
								    $file->getAuthorPHID(),
							 | 
						||
| 
								 | 
							
								    $macro->getID());
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								echo "Done.\n";
							 |