Browse Source

Improved code

Taichi Masuyama 4 years ago
parent
commit
79fa25bd77
1 changed files with 12 additions and 5 deletions
  1. 12 5
      packages/app/src/server/service/page.js

+ 12 - 5
packages/app/src/server/service/page.js

@@ -879,18 +879,18 @@ class PageService {
       ]);
       ]);
     }
     }
     catch (err) {
     catch (err) {
-      if (err?.code === 11000) {
+      if (err?.code === 11000) { // Error code 11000 indicates the index is unique
         isUnique = true;
         isUnique = true;
         logger.info('Page path index is unique.');
         logger.info('Page path index is unique.');
       }
       }
       else {
       else {
-        logger.error('Error occurred while checking index uniqueness.', err);
-        await Page.deleteMany({ path: { $regex: new RegExp('growi_check_is_path_index_unique', 'g') } });
         throw err;
         throw err;
       }
       }
     }
     }
+    finally {
+      await Page.deleteMany({ path: { $regex: new RegExp('growi_check_is_path_index_unique', 'g') } });
+    }
 
 
-    await Page.deleteMany({ path: { $regex: new RegExp('growi_check_is_path_index_unique', 'g') } });
 
 
     return isUnique;
     return isUnique;
   }
   }
@@ -899,7 +899,14 @@ class PageService {
   async v5InitialMigration(grant) {
   async v5InitialMigration(grant) {
     // const socket = this.crowi.socketIoService.getAdminSocket();
     // const socket = this.crowi.socketIoService.getAdminSocket();
 
 
-    const isUnique = await this._isPagePathIndexUnique();
+    let isUnique;
+    try {
+      isUnique = await this._isPagePathIndexUnique();
+    }
+    catch (err) {
+      logger.error('Failed to check path index status', err);
+      throw err;
+    }
 
 
     // drop unique index first
     // drop unique index first
     if (isUnique) {
     if (isUnique) {