Merge pull request #13868 from Budibase/fix-sqs-cleanup-on-app-delete
Fix application deletion when SQS is enabled.
This commit is contained in:
commit
ea4c3ff5f4
2 changed files with 14 additions and 11 deletions
|
@ -352,18 +352,15 @@ export class DatabaseImpl implements Database {
|
|||
}
|
||||
|
||||
async destroy() {
|
||||
try {
|
||||
if (env.SQS_SEARCH_ENABLE) {
|
||||
if (env.SQS_SEARCH_ENABLE && (await this.exists(SQLITE_DESIGN_DOC_ID))) {
|
||||
// delete the design document, then run the cleanup operation
|
||||
try {
|
||||
const definition = await this.get<SQLiteDefinition>(
|
||||
SQLITE_DESIGN_DOC_ID
|
||||
)
|
||||
await this.remove(SQLITE_DESIGN_DOC_ID, definition._rev)
|
||||
} finally {
|
||||
const definition = await this.get<SQLiteDefinition>(SQLITE_DESIGN_DOC_ID)
|
||||
// remove all tables - save the definition then trigger a cleanup
|
||||
definition.sql.tables = {}
|
||||
await this.put(definition)
|
||||
await this.sqlDiskCleanup()
|
||||
}
|
||||
}
|
||||
try {
|
||||
return await this.nano().db.destroy(this.name)
|
||||
} catch (err: any) {
|
||||
// didn't exist, don't worry
|
||||
|
|
|
@ -334,6 +334,12 @@ describe("/applications", () => {
|
|||
expect(events.app.deleted).toHaveBeenCalledTimes(1)
|
||||
expect(events.app.unpublished).toHaveBeenCalledTimes(1)
|
||||
})
|
||||
|
||||
it("should be able to delete an app after SQS_SEARCH_ENABLE has been set but app hasn't been migrated", async () => {
|
||||
await config.withCoreEnv({ SQS_SEARCH_ENABLE: "true" }, async () => {
|
||||
await config.api.application.delete(app.appId)
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
describe("POST /api/applications/:appId/duplicate", () => {
|
||||
|
|
Loading…
Reference in a new issue