From 505319061e28da647c2e9af6e65721d6b8f9da1b Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Mon, 8 Oct 2018 10:37:08 +0200 Subject: Fix avatar update --- server/lib/avatar.ts | 3 ++- server/models/avatar/avatar.ts | 5 ++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/server/lib/avatar.ts b/server/lib/avatar.ts index 4b6bc3185..021426a1a 100644 --- a/server/lib/avatar.ts +++ b/server/lib/avatar.ts @@ -7,10 +7,11 @@ import { AccountModel } from '../models/account/account' import { VideoChannelModel } from '../models/video/video-channel' import { extname, join } from 'path' import { retryTransactionWrapper } from '../helpers/database-utils' +import * as uuidv4 from 'uuid/v4' async function updateActorAvatarFile (avatarPhysicalFile: Express.Multer.File, accountOrChannel: AccountModel | VideoChannelModel) { const extension = extname(avatarPhysicalFile.filename) - const avatarName = accountOrChannel.Actor.uuid + extension + const avatarName = uuidv4() + extension const destination = join(CONFIG.STORAGE.AVATARS_DIR, avatarName) await processImage(avatarPhysicalFile, destination, AVATARS_SIZE) diff --git a/server/models/avatar/avatar.ts b/server/models/avatar/avatar.ts index 5d73e24fa..303aebcc2 100644 --- a/server/models/avatar/avatar.ts +++ b/server/models/avatar/avatar.ts @@ -23,7 +23,10 @@ export class AvatarModel extends Model { @AfterDestroy static removeFilesAndSendDelete (instance: AvatarModel) { logger.info('Removing avatar file %s.', instance.filename) - return instance.removeAvatar() + + // Don't block the transaction + instance.removeAvatar() + .catch(err => logger.error('Cannot remove avatar file %s.', instance.filename, err)) } toFormattedJSON (): Avatar { -- cgit v1.2.3 From 6321cbc3e7a43257b03b3285ab69b7977fd7f616 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Mon, 8 Oct 2018 11:58:18 +0200 Subject: Avoid old issue regarding duplicated hosts in db --- server/initializers/migrations/0275-video-file-unique.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/server/initializers/migrations/0275-video-file-unique.ts b/server/initializers/migrations/0275-video-file-unique.ts index fd89188c0..e321ecb04 100644 --- a/server/initializers/migrations/0275-video-file-unique.ts +++ b/server/initializers/migrations/0275-video-file-unique.ts @@ -5,6 +5,12 @@ async function up (utils: { queryInterface: Sequelize.QueryInterface sequelize: Sequelize.Sequelize }): Promise { + // Delete duplicated keys + { + const query = 'DELETE FROM "server" s1 USING "server" s2 WHERE s1.id < s2.id AND s1."host" = s2."host"' + await utils.sequelize.query(query) + } + { const query = 'DELETE FROM "videoFile" vf1 USING "videoFile" vf2 WHERE vf1.id < vf2.id ' + 'AND vf1."videoId" = vf2."videoId" AND vf1.resolution = vf2.resolution AND vf1.fps IS NULL' -- cgit v1.2.3