fix(server): vacuum after deleting people (#18299)

* vacuum after deleting people

* update sql
This commit is contained in:
Mert
2025-05-14 23:13:13 -04:00
committed by GitHub
parent cd03d0c0f2
commit 3a0ddfb92d
5 changed files with 18 additions and 19 deletions

View File

@@ -105,8 +105,6 @@ export class PersonRepository {
.set({ personId: null })
.where('asset_faces.sourceType', '=', sourceType)
.execute();
await this.vacuum({ reindexVectors: false });
}
@GenerateSql({ params: [DummyValue.UUID] })
@@ -121,8 +119,6 @@ export class PersonRepository {
@GenerateSql({ params: [{ sourceType: SourceType.EXIF }] })
async deleteFaces({ sourceType }: DeleteFacesOptions): Promise<void> {
await this.db.deleteFrom('asset_faces').where('asset_faces.sourceType', '=', sourceType).execute();
await this.vacuum({ reindexVectors: sourceType === SourceType.MACHINE_LEARNING });
}
getAllFaces(options: GetAllFacesOptions = {}) {
@@ -519,7 +515,7 @@ export class PersonRepository {
await this.db.updateTable('asset_faces').set({ deletedAt: new Date() }).where('asset_faces.id', '=', id).execute();
}
private async vacuum({ reindexVectors }: { reindexVectors: boolean }): Promise<void> {
async vacuum({ reindexVectors }: { reindexVectors: boolean }): Promise<void> {
await sql`VACUUM ANALYZE asset_faces, face_search, person`.execute(this.db);
await sql`REINDEX TABLE asset_faces`.execute(this.db);
await sql`REINDEX TABLE person`.execute(this.db);