Răsfoiți Sursa

Merge branch 'master' into fix/5711-children-pages-not-showing-on-sidebar-fix

Yuki Takei 5 ani în urmă
părinte
comite
51656e10f0
1 a modificat fișierele cu 40 adăugiri și 0 ștergeri
  1. 40 0
      src/migrations/2021042016038-convert-double-to-date.js

+ 40 - 0
src/migrations/2021042016038-convert-double-to-date.js

@@ -0,0 +1,40 @@
+require('module-alias/register');
+const logger = require('@alias/logger')('growi:migrate:convert-double-to-date');
+
+const mongoose = require('mongoose');
+const config = require('@root/config/migrate');
+
+const { getModelSafely } = require('@commons/util/mongoose-utils');
+
+module.exports = {
+  async up(db) {
+    logger.info('Apply migration');
+    mongoose.connect(config.mongoUri, config.mongodb.options);
+
+    const Page = getModelSafely('Page') || require('@server/models/page')();
+
+    const pages = await Page.find({ updatedAt: { $type: 'double' } });
+
+    if (pages.length === 0) {
+      return logger.info('The target page did not exist.');
+    }
+
+    const operations = pages.map((page) => {
+      return {
+        updateMany: {
+          filter: { _id: page._id },
+          update: { updatedAt: new Date(page.updatedAt) },
+        },
+      };
+    });
+
+    await Page.bulkWrite(operations);
+
+    logger.info('Migration has successfully applied');
+
+  },
+
+  down(db) {
+    // do not rollback
+  },
+};