diff --git a/resources/sql/autopatches/20220510.file.01.attach.sql b/resources/sql/autopatches/20220510.file.01.attach.sql new file mode 100644 --- /dev/null +++ b/resources/sql/autopatches/20220510.file.01.attach.sql @@ -0,0 +1,9 @@ +CREATE TABLE {$NAMESPACE}_file.file_attachment ( + id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + objectPHID VARBINARY(64) NOT NULL, + filePHID VARBINARY(64) NOT NULL, + attacherPHID VARBINARY(64), + attachmentMode VARCHAR(32) NOT NULL COLLATE {$COLLATE_TEXT}, + dateCreated INT UNSIGNED NOT NULL, + dateModified INT UNSIGNED NOT NULL +) ENGINE=InnoDB, COLLATE {$COLLATE_TEXT}; diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php --- a/src/__phutil_library_map__.php +++ b/src/__phutil_library_map__.php @@ -3450,6 +3450,7 @@ 'PhabricatorFile' => 'applications/files/storage/PhabricatorFile.php', 'PhabricatorFileAES256StorageFormat' => 'applications/files/format/PhabricatorFileAES256StorageFormat.php', 'PhabricatorFileAltTextTransaction' => 'applications/files/xaction/PhabricatorFileAltTextTransaction.php', + 'PhabricatorFileAttachment' => 'applications/files/storage/PhabricatorFileAttachment.php', 'PhabricatorFileBundleLoader' => 'applications/files/query/PhabricatorFileBundleLoader.php', 'PhabricatorFileChunk' => 'applications/files/storage/PhabricatorFileChunk.php', 'PhabricatorFileChunkIterator' => 'applications/files/engine/PhabricatorFileChunkIterator.php', @@ -9888,6 +9889,7 @@ ), 'PhabricatorFileAES256StorageFormat' => 'PhabricatorFileStorageFormat', 'PhabricatorFileAltTextTransaction' => 'PhabricatorFileTransactionType', + 'PhabricatorFileAttachment' => 'PhabricatorFileDAO', 'PhabricatorFileBundleLoader' => 'Phobject', 'PhabricatorFileChunk' => array( 'PhabricatorFileDAO', diff --git a/src/applications/files/storage/PhabricatorFileAttachment.php b/src/applications/files/storage/PhabricatorFileAttachment.php new file mode 100644 --- /dev/null +++ b/src/applications/files/storage/PhabricatorFileAttachment.php @@ -0,0 +1,31 @@ + array( + 'objectPHID' => 'phid', + 'filePHID' => 'phid', + 'attacherPHID' => 'phid?', + 'attachmentMode' => 'text32', + ), + self::CONFIG_KEY_SCHEMA => array( + 'key_object' => array( + 'columns' => array('objectPHID', 'filePHID'), + 'unique' => true, + ), + 'key_file' => array( + 'columns' => array('filePHID'), + ), + ), + ) + parent::getConfiguration(); + } + +}