File tree 2 files changed +17
-2
lines changed
apps/meteor/server/startup/migrations
2 files changed +17
-2
lines changed Original file line number Diff line number Diff line change
1
+ ---
2
+ " @rocket.chat/meteor " : patch
3
+ ---
4
+
5
+ fixed retention policy max age settings not being respected after upgrade
Original file line number Diff line number Diff line change @@ -2,6 +2,7 @@ import { Settings } from '@rocket.chat/models';
2
2
import type { UpdateResult } from 'mongodb' ;
3
3
4
4
import { upsertPermissions } from '../../../app/authorization/server/functions/upsertPermissions' ;
5
+ import { settings } from '../../../app/settings/server' ;
5
6
import { migrateDatabase , onServerVersionChange } from '../../lib/migrations' ;
6
7
import { ensureCloudWorkspaceRegistered } from '../cloudRegistration' ;
7
8
@@ -23,22 +24,31 @@ const moveRetentionSetting = async () => {
23
24
{ _id : { $in : Array . from ( maxAgeSettingMap . keys ( ) ) } , value : { $ne : - 1 } } ,
24
25
{ projection : { _id : 1 , value : 1 } } ,
25
26
) . forEach ( ( { _id, value } ) => {
26
- if ( ! maxAgeSettingMap . has ( _id ) ) {
27
+ const newSettingId = maxAgeSettingMap . get ( _id ) ;
28
+ if ( ! newSettingId ) {
27
29
throw new Error ( `moveRetentionSetting - Setting ${ _id } equivalent does not exist` ) ;
28
30
}
29
31
32
+ const newValue = convertDaysToMs ( Number ( value ) ) ;
33
+
30
34
promises . push (
31
35
Settings . updateOne (
32
36
{
33
37
_id : maxAgeSettingMap . get ( _id ) ,
34
38
} ,
35
39
{
36
40
$set : {
37
- value : convertDaysToMs ( Number ( value ) ) ,
41
+ value : newValue ,
38
42
} ,
39
43
} ,
40
44
) ,
41
45
) ;
46
+
47
+ const currentCache = settings . getSetting ( newSettingId ) ;
48
+ if ( ! currentCache ) {
49
+ return ;
50
+ }
51
+ settings . set ( { ...currentCache , value : newValue } ) ;
42
52
} ) ;
43
53
44
54
await Promise . all ( promises ) ;
You can’t perform that action at this time.
0 commit comments