 d63811d319
			
		
	
	d63811d319
	
	
	
		
			
			Summary: Currently, the author of an image macro is read from the attached file. This is messy and necessitates a join, and is not always correct. Instead, store the data when the macro is created. This lays the groundwork for generalizing ApplicationSearch here. Ref T2625. Test Plan: Migrated existing macros, created a new macro, checked web UI. Reviewers: btrahan Reviewed By: btrahan CC: aran Maniphest Tasks: T2625 Differential Revision: https://secure.phabricator.com/D6071
		
			
				
	
	
		
			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";
 |