Store authors on image macros
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
This commit is contained in:
2
resources/sql/patches/20130529.macroauthor.sql
Normal file
2
resources/sql/patches/20130529.macroauthor.sql
Normal file
@@ -0,0 +1,2 @@
|
||||
ALTER TABLE {$NAMESPACE}_file.file_imagemacro
|
||||
ADD authorPHID VARCHAR(64) COLLATE utf8_bin AFTER phid;
|
||||
39
resources/sql/patches/20130529.macroauthormig.php
Normal file
39
resources/sql/patches/20130529.macroauthormig.php
Normal file
@@ -0,0 +1,39 @@
|
||||
<?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";
|
||||
Reference in New Issue
Block a user