Shun Miyazawa há 1 ano atrás
pai
commit
23c98214c3

+ 26 - 0
apps/app/src/server/service/normalize-data/convert-revision-page-id-to-string.ts

@@ -0,0 +1,26 @@
+// see: https://redmine.weseek.co.jp/issues/150649
+
+import { type IRevisionHasId } from '@growi/core';
+import mongoose from 'mongoose';
+
+export const convertRevisionPageIdToString = async(): Promise<void> => {
+  const Revision = mongoose.model<IRevisionHasId>('Revision');
+
+  // Extract documents with ObjectId value of revision.pageId value
+  const targetDocuments = await Revision.find({ $expr: { $not: { $eq: [{ $type: '$pageId' }, 'string'] } } });
+
+  const requests = targetDocuments.map((revision) => {
+    return {
+      updateOne: {
+        filter: { _id: revision._id },
+        update: {
+          $set: {
+            pageId: revision.pageId.toString(),
+          },
+        },
+      },
+    };
+  });
+
+  await Revision.bulkWrite(requests);
+};

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

@@ -1,11 +1,13 @@
 import loggerFactory from '~/utils/logger';
 
+import { convertRevisionPageIdToString } from './convert-revision-page-id-to-string';
 import { renameDuplicateRootPages } from './rename-duplicate-root-pages';
 
 const logger = loggerFactory('growi:service:NormalizeData');
 
 export const normalizeData = async(): Promise<void> => {
   await renameDuplicateRootPages();
+  await convertRevisionPageIdToString();
 
   logger.info('normalizeData has been executed');
   return;