diff --git a/.changeset/fix-embedded-db-pid-file-timing.md b/.changeset/fix-embedded-db-pid-file-timing.md new file mode 100644 index 0000000000..6a0c4f55c0 --- /dev/null +++ b/.changeset/fix-embedded-db-pid-file-timing.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli-module-build': patch +--- + +Fixed the embedded-postgres PID file being written before database initialization, which prevented the database from initializing successfully. diff --git a/packages/cli-module-build/src/lib/runner/startEmbeddedDb.ts b/packages/cli-module-build/src/lib/runner/startEmbeddedDb.ts index c94a5a7f46..334f76878e 100644 --- a/packages/cli-module-build/src/lib/runner/startEmbeddedDb.ts +++ b/packages/cli-module-build/src/lib/runner/startEmbeddedDb.ts @@ -78,8 +78,6 @@ export async function startEmbeddedDb() { const port = await getPortPromise(); const tmpDir = await fs.mkdtemp(resolvePath(os.tmpdir(), TEMP_DIR_PREFIX)); - await fs.writeFile(resolvePath(tmpDir, PID_FILE), String(process.pid)); - const pg = new EmbeddedPostgres({ databaseDir: tmpDir, user, @@ -94,6 +92,7 @@ export async function startEmbeddedDb() { try { await pg.initialise(); + await fs.writeFile(resolvePath(tmpDir, PID_FILE), String(process.pid)); await pg.start(); } catch (error) { await pg.stop().catch(() => {});