Browse Source
Merge pull request #3289 from Budibase/fix/prevent-revert
fix revert on unpublished app
gh-pages
Martin McKeaveney
5 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with
20 additions and
0 deletions
-
packages/server/src/api/controllers/application.js
-
packages/server/src/api/controllers/dev.js
|
|
|
@ -329,6 +329,19 @@ exports.sync = async ctx => { |
|
|
|
ctx.throw(400, "This action cannot be performed for production apps") |
|
|
|
} |
|
|
|
const prodAppId = getDeployedAppID(appId) |
|
|
|
|
|
|
|
try { |
|
|
|
const prodDb = new CouchDB(prodAppId, { skip_setup: true }) |
|
|
|
const info = await prodDb.info() |
|
|
|
if (info.error) throw info.error |
|
|
|
} catch (err) { |
|
|
|
// the database doesn't exist. Don't replicate
|
|
|
|
ctx.body = { |
|
|
|
message: "App sync not required, app not deployed.", |
|
|
|
} |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
const replication = new Replication({ |
|
|
|
source: prodAppId, |
|
|
|
target: appId, |
|
|
|
|
|
|
|
@ -82,6 +82,13 @@ exports.revert = async ctx => { |
|
|
|
const db = new CouchDB(productionAppId, { skip_setup: true }) |
|
|
|
const info = await db.info() |
|
|
|
if (info.error) throw info.error |
|
|
|
const deploymentDoc = await db.get(DocumentTypes.DEPLOYMENTS) |
|
|
|
if ( |
|
|
|
!deploymentDoc.history || |
|
|
|
Object.keys(deploymentDoc.history).length === 0 |
|
|
|
) { |
|
|
|
throw new Error("No deployments for app") |
|
|
|
} |
|
|
|
} catch (err) { |
|
|
|
return ctx.throw(400, "App has not yet been deployed") |
|
|
|
} |
|
|
|
|