diff options
| author | syuilo <syuilotan@yahoo.co.jp> | 2019-04-17 02:11:22 +0900 |
|---|---|---|
| committer | syuilo <syuilotan@yahoo.co.jp> | 2019-04-17 02:11:22 +0900 |
| commit | e265b538cc96b10b2ffc98c15227ab097cf4744b (patch) | |
| tree | 2d9738ca5c8ad3c600bd2e842c33c10c142d997c /src | |
| parent | Metaのアクセスでトランザクションを張るように (#4720) (diff) | |
| download | sharkey-e265b538cc96b10b2ffc98c15227ab097cf4744b.tar.gz sharkey-e265b538cc96b10b2ffc98c15227ab097cf4744b.tar.bz2 sharkey-e265b538cc96b10b2ffc98c15227ab097cf4744b.zip | |
Fix #4724
Diffstat (limited to 'src')
| -rw-r--r-- | src/models/entities/note.ts | 2 | ||||
| -rw-r--r-- | src/services/drive/delete-file.ts | 7 |
2 files changed, 8 insertions, 1 deletions
diff --git a/src/models/entities/note.ts b/src/models/entities/note.ts index 969363da3b..280f3dfcb8 100644 --- a/src/models/entities/note.ts +++ b/src/models/entities/note.ts @@ -129,12 +129,14 @@ export class Note { }) public score: number; + @Index() @Column({ ...id(), array: true, default: '{}' }) public fileIds: DriveFile['id'][]; + @Index() @Column('varchar', { length: 256, array: true, default: '{}' }) diff --git a/src/services/drive/delete-file.ts b/src/services/drive/delete-file.ts index bba453b982..1aba0d5fd8 100644 --- a/src/services/drive/delete-file.ts +++ b/src/services/drive/delete-file.ts @@ -2,7 +2,7 @@ import * as Minio from 'minio'; import config from '../../config'; import { DriveFile } from '../../models/entities/drive-file'; import { InternalStorage } from './internal-storage'; -import { DriveFiles, Instances } from '../../models'; +import { DriveFiles, Instances, Notes } from '../../models'; import { driveChart, perUserDriveChart, instanceChart } from '../chart'; export default async function(file: DriveFile, isExpired = false) { @@ -40,6 +40,11 @@ export default async function(file: DriveFile, isExpired = false) { }); } else { DriveFiles.delete(file.id); + + // TODO: トランザクション + Notes.createQueryBuilder('note').delete() + .andWhere(':id = ANY(note.fileIds)', { id: file.id }) + .execute(); } // 統計を更新 |