Просмотр исходного кода

impl convertNullToEmptyGrantedArrays

Shun Miyazawa 1 год назад
Родитель
Сommit
7606aac4f2

+ 29 - 0
apps/app/src/server/service/normalize-data/convert-null-to-empty-granted-arrays.ts

@@ -0,0 +1,29 @@
+import type { IPageHasId } from '@growi/core';
+import mongoose from 'mongoose';
+
+import { type PageModel } from '~/server/models/page';
+
+export const convertNullToEmptyGrantedArrays = async(): Promise<void> => {
+  const Page = mongoose.model<IPageHasId, PageModel>('Page');
+
+  const requests = [
+    {
+      updateMany: {
+        filter: { grantedUsers: null },
+        update: {
+          $set: { grantedUsers: [] },
+        },
+      },
+    },
+    {
+      updateMany: {
+        filter: { grantedGroups: null },
+        update: {
+          $set: { grantedGroups: [] },
+        },
+      },
+    },
+  ];
+
+  await Page.bulkWrite(requests);
+};

+ 2 - 0
apps/app/src/server/service/normalize-data/index.ts

@@ -1,6 +1,7 @@
 import { normalizeExpiredAtForThreadRelations } from '~/features/openai/server/services/normalize-data';
 import loggerFactory from '~/utils/logger';
 
+import { convertNullToEmptyGrantedArrays } from './convert-null-to-empty-granted-arrays';
 import { convertRevisionPageIdToObjectId } from './convert-revision-page-id-to-objectid';
 import { renameDuplicateRootPages } from './rename-duplicate-root-pages';
 
@@ -10,6 +11,7 @@ export const normalizeData = async(): Promise<void> => {
   await renameDuplicateRootPages();
   await convertRevisionPageIdToObjectId();
   await normalizeExpiredAtForThreadRelations();
+  await convertNullToEmptyGrantedArrays();
 
   logger.info('normalizeData has been executed');
   return;