20210906194521-slack-app-integration-set-default-value.js 1.1 KB

12345678910111213141516171819202122232425262728293031
  1. import mongoose from 'mongoose';
  2. import { getModelSafely, getMongoUri, mongoOptions } from '@growi/core';
  3. import loggerFactory from '~/utils/logger';
  4. const logger = loggerFactory('growi:migrate:slack-app-integration-set-default-value');
  5. module.exports = {
  6. async up(db) {
  7. logger.info('Apply migration');
  8. mongoose.connect(getMongoUri(), mongoOptions);
  9. // Add columns + set all default commands if supportedCommandsForBroadcastUse column does not exist
  10. const SlackAppIntegration = getModelSafely('SlackAppIntegration') || require('~/server/models/slack-app-integration')();
  11. // Add togetter command if supportedCommandsForBroadcastUse already exists
  12. const slackAppIntegrations = await SlackAppIntegration.find();
  13. slackAppIntegrations.forEach(async(doc) => {
  14. if (doc.supportedCommandsForSingleUse != null && !doc.supportedCommandsForSingleUse.includes('togetter')) {
  15. doc.supportedCommandsForSingleUse.push('togetter');
  16. }
  17. await doc.save();
  18. });
  19. logger.info('Migration has successfully applied');
  20. },
  21. async down() {
  22. // no rollback
  23. },
  24. };