sls-db-migrations
Version:
Serverless wrapper for node.js db-migrations framework
38 lines (30 loc) • 1.2 kB
JavaScript
;
const { S3Client } = require('@aws-sdk/client-s3');
const { ServerlessDBMigrator } = require("./serverlessDbMigrator.js")
const { BaseDBMigrationClient } = require("./dbMigrationClient.js");
const successResponse = () => {
return { success: true }
}
const errorResponse = (error) => {
return {
success: false,
message: error.message,
stack: error.stack,
}
}
async function serverlessMigrationHandler(event) {
const { bucket, archivePath, command, configOptions, commandOptions } = event;
console.log(`Running command "${command}" with payload - bucket: ${bucket}, archivePath: ${archivePath}, `)
const s3Client = new S3Client();
const baseDbMigrationClient = new BaseDBMigrationClient()
const slsDbMigrator = new ServerlessDBMigrator(s3Client, baseDbMigrationClient)
try {
await slsDbMigrator.executeCommand(bucket, archivePath, command, configOptions, commandOptions)
return successResponse()
} catch (e) {
console.error(`Error running command "${command}" using bucket: ${bucket}, path: ${archivePath}`)
console.log(e)
return errorResponse(e)
}
};
module.exports.serverlessMigrationHandler = serverlessMigrationHandler;