Ghost/core/server/data/migrations/versions/2.28/1-add-db-backup-content-per...

62 lines
1.9 KiB
JavaScript

const logging = require('../../../../../shared/logging');
const models = require('../../../../models');
const utils = require('../../../schema/fixtures/utils');
const fixtureBackupContentPerm = utils.findModelFixtureEntry('Permission', {
object_type: 'db',
action_type: 'backupContent'
});
module.exports = {
config: {
transaction: true
},
async up(options) {
try {
const existingBackupContentPerm = await models.Permission.findOne(
fixtureBackupContentPerm,
options
);
if (existingBackupContentPerm) {
return logging.warn('Issue adding db.backupContent (already exists)');
}
const result = await utils.addFixturesForModel({
name: 'Permission',
entries: [fixtureBackupContentPerm]
}, options);
const success = result.done === result.expected;
if (!success) {
return logging.warn('Issue adding db.backupContent permission (did not insert)');
}
return logging.info('Completed adding db.backupContent permission');
} catch (err) {
return logging.error('Errored when adding db.backupContent permission');
}
},
async down(options) {
try {
const existingBackupContentPerm = await models.Permission.findOne(
fixtureBackupContentPerm,
options
);
if (!existingBackupContentPerm) {
return logging.warn('Issue removing db.backupContent (already removed)');
}
await existingBackupContentPerm.destroy(options);
return logging.info('Completed removing db.backupContent permission');
} catch (err) {
return logging.error('Errored when removing db.backupContent permission');
}
}
};