diff --git a/packages/cli-module-build/src/lib/runner/runBackend.ts b/packages/cli-module-build/src/lib/runner/runBackend.ts index 272eddd360..464ff10cec 100644 --- a/packages/cli-module-build/src/lib/runner/runBackend.ts +++ b/packages/cli-module-build/src/lib/runner/runBackend.ts @@ -232,6 +232,9 @@ async function readDatabaseClient( }); const config = await ConfigSources.toConfig(source); - config.close(); - return config.getOptionalString('backend.database.client'); + try { + return config.getOptionalString('backend.database.client'); + } finally { + config.close(); + } } diff --git a/packages/cli-module-build/src/lib/runner/startEmbeddedDb.ts b/packages/cli-module-build/src/lib/runner/startEmbeddedDb.ts index d667a43ae8..c94a5a7f46 100644 --- a/packages/cli-module-build/src/lib/runner/startEmbeddedDb.ts +++ b/packages/cli-module-build/src/lib/runner/startEmbeddedDb.ts @@ -92,11 +92,14 @@ export async function startEmbeddedDb() { onLog() {}, }); - // Create the cluster config files - await pg.initialise(); - - // Start the server - await pg.start(); + try { + await pg.initialise(); + await pg.start(); + } catch (error) { + await pg.stop().catch(() => {}); + await fs.remove(tmpDir).catch(() => {}); + throw error; + } return { connection: {