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

fix 'abolish-page-group-relation' migration

* check whether the collection exists or not
Yuki Takei 7 лет назад
Родитель
Сommit
80f5d46445
1 измененных файлов с 13 добавлено и 0 удалено
  1. 13 0
      src/migrations/20181019114028-abolish-page-group-relation.js

+ 13 - 0
src/migrations/20181019114028-abolish-page-group-relation.js

@@ -6,6 +6,12 @@ const logger = require('@alias/logger')('growi:migrate:abolish-page-group-relati
 const mongoose = require('mongoose');
 const config = require('@root/config/migrate');
 
+
+async function isCollectionExists(db, collectionName) {
+  const collections = await db.listCollections({ name: collectionName }).toArray();
+  return collections.length > 0;
+}
+
 /**
  * BEFORE
  *   - 'pagegrouprelations' collection exists (related to models/page-group-relation.js)
@@ -26,6 +32,13 @@ module.exports = {
     logger.info('Apply migration');
     mongoose.connect(config.mongoUri, config.mongodb.options);
 
+    const isPagegrouprelationsExists = await isCollectionExists(db, 'pagegrouprelations');
+    if (!isPagegrouprelationsExists) {
+      logger.info("'pagegrouprelations' collection doesn't exist");   // eslint-disable-line
+      logger.info('Migration has successfully applied');
+      return;
+    }
+
     const Page = require('@server/models/page')();
     const UserGroup = require('@server/models/user-group')();