@@ -34,7 +34,6 @@ protected function configure(): void {
34
34
}
35
35
36
36
public function execute (InputInterface $ input , OutputInterface $ output ): int {
37
- $ deletedEntries = 0 ;
38
37
$ fileIdsByStorage = [];
39
38
40
39
$ deletedStorages = array_diff ($ this ->getReferencedStorages (), $ this ->getExistingStorages ());
@@ -44,26 +43,17 @@ public function execute(InputInterface $input, OutputInterface $output): int {
44
43
$ fileIdsByStorage = $ this ->getFileIdsForStorages ($ deletedStorages );
45
44
}
46
45
47
- $ deleteQuery = $ this ->connection ->getQueryBuilder ();
48
- $ deleteQuery ->delete ('filecache ' )
49
- ->where ($ deleteQuery ->expr ()->in ('storage ' , $ deleteQuery ->createParameter ('storage_ids ' )));
50
-
51
- $ deletedStorageChunks = array_chunk ($ deletedStorages , self ::CHUNK_SIZE );
52
- foreach ($ deletedStorageChunks as $ deletedStorageChunk ) {
53
- $ deleteQuery ->setParameter ('storage_ids ' , $ deletedStorageChunk , IQueryBuilder::PARAM_INT_ARRAY );
54
- $ deletedEntries += $ deleteQuery ->executeStatement ();
55
- }
56
-
46
+ $ deletedEntries = $ this ->cleanupOrphanedFileCache ($ deletedStorages );
57
47
$ output ->writeln ("$ deletedEntries orphaned file cache entries deleted " );
58
48
59
49
if ($ deleteExtended ) {
60
50
$ deletedFileCacheExtended = $ this ->cleanupOrphanedFileCacheExtended ($ fileIdsByStorage );
61
51
$ output ->writeln ("$ deletedFileCacheExtended orphaned file cache extended entries deleted " );
62
52
}
63
53
64
-
65
54
$ deletedMounts = $ this ->cleanupOrphanedMounts ();
66
55
$ output ->writeln ("$ deletedMounts orphaned mount entries deleted " );
56
+
67
57
return self ::SUCCESS ;
68
58
}
69
59
@@ -106,6 +96,22 @@ private function getFileIdsForStorages(array $storageIds): array {
106
96
return $ result ;
107
97
}
108
98
99
+ private function cleanupOrphanedFileCache (array $ deletedStorages ): int {
100
+ $ deletedEntries = 0 ;
101
+
102
+ $ deleteQuery = $ this ->connection ->getQueryBuilder ();
103
+ $ deleteQuery ->delete ('filecache ' )
104
+ ->where ($ deleteQuery ->expr ()->in ('storage ' , $ deleteQuery ->createParameter ('storage_ids ' )));
105
+
106
+ $ deletedStorageChunks = array_chunk ($ deletedStorages , self ::CHUNK_SIZE );
107
+ foreach ($ deletedStorageChunks as $ deletedStorageChunk ) {
108
+ $ deleteQuery ->setParameter ('storage_ids ' , $ deletedStorageChunk , IQueryBuilder::PARAM_INT_ARRAY );
109
+ $ deletedEntries += $ deleteQuery ->executeStatement ();
110
+ }
111
+
112
+ return $ deletedEntries ;
113
+ }
114
+
109
115
/**
110
116
* @param array<int, int[]> $fileIdsByStorage
111
117
* @return int
0 commit comments