mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-09 16:32:39 +01:00
2b7c0ec92f
Summary: Adds file attachment deletion logics: - PhabricatorFile: delete the attachment if file is deleted - destruction engine extension: delete attachment if object is deleted - SQL patch: delete existing leftover attachments from deleted files To apply the cleanup, as usual, run: ./bin/storage upgrade This cleanup may take some time, proportionally to the size of these tables: phabricator_file.file phabricator_file.file_attachment Just as an indication: the storage upgrade, in a Phorge with `file` count 1.3M rows and `file_attachment` consisting in 9K rows, it may delete 170K rows in less than 1 second on average hardware. Closes T15110 Test Plan: Apply the patch, run `./bin/storage/upgrade`: - no "Unknown Object" in any "Referenced Files" curtain of any object. Have phd daemon running. Upload file, attach the file to a task, delete the file from the web interface: - no "Unknown Object" in "Referenced Files" curtain of that task. - the query `SELECT * FROM file_attachment WHERE filePHID = '<file phid>'` returns empty result Upload file, attach the file to a task, delete the task from the `./bin/remove destroy` workflow: - the query `SELECT * FROM file_attachment WHERE objectPHID = '<task phid>'` returns empty result Reviewers: O1 Blessed Committers, avivey, valerio.bozzolan Reviewed By: O1 Blessed Committers, avivey, valerio.bozzolan Subscribers: Ekubischta, speck, tobiaswiese, valerio.bozzolan, Matthew, Cigaryno Tags: #files Maniphest Tasks: T15110 Differential Revision: https://we.phorge.it/D25051
6 lines
139 B
SQL
6 lines
139 B
SQL
USE {$NAMESPACE}_file;
|
|
DELETE FROM file_attachment
|
|
WHERE NOT EXISTS
|
|
(SELECT *
|
|
FROM file
|
|
WHERE phid=file_attachment.filePHID)
|