2021-01-27 14:55:46 +01:00
|
|
|
const { performDump } = require("../../utilities/templates")
|
|
|
|
const path = require("path")
|
|
|
|
const os = require("os")
|
|
|
|
const fs = require("fs-extra")
|
|
|
|
|
|
|
|
exports.exportAppDump = async function(ctx) {
|
2021-02-03 14:28:11 +01:00
|
|
|
const { appId, appname } = ctx.query
|
2021-01-27 14:55:46 +01:00
|
|
|
|
|
|
|
const backupsDir = path.join(os.homedir(), ".budibase", "backups")
|
|
|
|
fs.ensureDirSync(backupsDir)
|
|
|
|
|
2021-02-03 14:28:11 +01:00
|
|
|
const backupIdentifier = `${appname}Backup${new Date().getTime()}.txt`
|
2021-01-27 14:55:46 +01:00
|
|
|
|
|
|
|
await performDump({
|
|
|
|
dir: backupsDir,
|
|
|
|
appId,
|
|
|
|
name: backupIdentifier,
|
|
|
|
})
|
|
|
|
|
|
|
|
ctx.status = 200
|
2021-01-29 22:52:45 +01:00
|
|
|
|
|
|
|
const backupFile = path.join(backupsDir, backupIdentifier)
|
|
|
|
|
|
|
|
ctx.attachment(backupIdentifier)
|
|
|
|
ctx.body = fs.createReadStream(backupFile)
|
2021-01-27 14:55:46 +01:00
|
|
|
}
|