52 lines
1.2 KiB
JavaScript
52 lines
1.2 KiB
JavaScript
const {
|
|
initialiseData,
|
|
setupDatastore,
|
|
common
|
|
} = require("@budibase/core");
|
|
const getDatabaseManager = require("../utilities/databaseManager");
|
|
const { applictionVersionPackage } = require("../utilities/createAppPackage");
|
|
const { last } = require("lodash/fp");
|
|
const {$,splitKey} = common;
|
|
|
|
|
|
module.exports = async (context, datastoreModule, app, instance) => {
|
|
try {
|
|
|
|
const databaseManager = getDatabaseManager(
|
|
datastoreModule,
|
|
context.config.datastoreConfig);
|
|
|
|
await databaseManager.createEmptyInstanceDb(
|
|
app.id, instance.id);
|
|
|
|
const dbConfig = databaseManager.getInstanceDatastoreConfig(
|
|
app.id, instance.id);
|
|
|
|
const datastore = setupDatastore(
|
|
datastoreModule.getDatastore(dbConfig));
|
|
|
|
const versionId = $(instance.version.key, [
|
|
splitKey,
|
|
last
|
|
]);
|
|
|
|
const appPackage = await applictionVersionPackage(
|
|
context, app.name, versionId, instance.key
|
|
);
|
|
|
|
await initialiseData(
|
|
datastore,
|
|
appPackage.appDefinition,
|
|
appPackage.accessLevels);
|
|
|
|
return dbConfig;
|
|
|
|
} catch(e) {
|
|
throw e;
|
|
}
|
|
};
|
|
|
|
|
|
|
|
|