UNPKG

@5minds/processcube_engine

Version:

The ProcessCube Engine. Stores and executes BPMNs.

75 lines 3.62 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createDatabase = createDatabase; exports.checkIfDatabaseExists = checkIfDatabaseExists; const processcube_engine_sdk_1 = require("@5minds/processcube_engine_sdk"); const SequelizeConnectionManager_1 = require("./SequelizeConnectionManager"); async function createDatabase(sequelizeInstanceConfig, databaseName) { switch (sequelizeInstanceConfig.dialect) { case 'postgres': return setupPostgresDatabase(sequelizeInstanceConfig, databaseName); case 'mssql': return setupMssqlDatabase(sequelizeInstanceConfig, databaseName); case 'mysql': return setupMysqlDatabase(sequelizeInstanceConfig, databaseName); case 'sqlite': return undefined; default: throw new processcube_engine_sdk_1.InternalServerError(`Sequelize dialect \`${sequelizeInstanceConfig.dialect}\` is not supported.`, 'setup'); } } async function checkIfDatabaseExists(config) { return (0, SequelizeConnectionManager_1.databaseExists)(config); } async function setupPostgresDatabase(sequelizeInstanceConfig, databaseName) { const dbCreationConfig = Object.assign({}, sequelizeInstanceConfig, { database: 'postgres' }); let dbCreationInstance; try { dbCreationInstance = await (0, SequelizeConnectionManager_1.getSequelizeInstanceWithoutModels)(dbCreationConfig); } catch (error) { const dbCreationError = new processcube_engine_sdk_1.InternalServerError(`Could not create database: ${error.message}`, 'setup'); dbCreationError.fatal = true; dbCreationError.additionalInformation = { ...error.additionalInformation, }; throw dbCreationError; } await dbCreationInstance.query(`CREATE DATABASE ${databaseName}`); await (0, SequelizeConnectionManager_1.destroySequelizeInstance)(); } async function setupMssqlDatabase(sequelizeInstanceConfig, databaseName) { const dbCreationConfig = Object.assign({}, sequelizeInstanceConfig, { database: undefined }); let dbCreationInstance; try { dbCreationInstance = await (0, SequelizeConnectionManager_1.getSequelizeInstanceWithoutModels)(dbCreationConfig); } catch (error) { const dbCreationError = new processcube_engine_sdk_1.InternalServerError(`Could not create database: ${error.message}`, 'setup'); dbCreationError.fatal = true; dbCreationError.additionalInformation = { ...error.additionalInformation, }; throw dbCreationError; } await dbCreationInstance.query(`CREATE DATABASE [${databaseName}]`); await (0, SequelizeConnectionManager_1.destroySequelizeInstance)(); } async function setupMysqlDatabase(sequelizeInstanceConfig, databaseName) { const dbCreationConfig = Object.assign({}, sequelizeInstanceConfig, { database: undefined }); let dbCreationInstance; try { dbCreationInstance = await (0, SequelizeConnectionManager_1.getSequelizeInstanceWithoutModels)(dbCreationConfig); } catch (error) { const dbCreationError = new processcube_engine_sdk_1.InternalServerError(`Could not create database: ${error.message}`, 'setup'); dbCreationError.fatal = true; dbCreationError.additionalInformation = { ...error.additionalInformation, }; throw dbCreationError; } await dbCreationInstance.query(`CREATE DATABASE ${databaseName}`); await (0, SequelizeConnectionManager_1.destroySequelizeInstance)(); } //# sourceMappingURL=DatabaseCreation.js.map