diff --git a/CHANGELOG.md b/CHANGELOG.md index e69de29bb2d..30e21d84fde 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -0,0 +1 @@ +- Fixed an issue where `--import` path was incorrectly resolved for the Data Connect emulator. (#8219) diff --git a/src/emulator/dataconnect/pgliteServer.ts b/src/emulator/dataconnect/pgliteServer.ts index db70669b855..f365ceb9cc0 100644 --- a/src/emulator/dataconnect/pgliteServer.ts +++ b/src/emulator/dataconnect/pgliteServer.ts @@ -89,6 +89,10 @@ export class PostgresServer { async getDb(): Promise { if (!this.db) { + // First, ensure that the data directory exists - PGLite tries to do this but doesn't do so recursively + if (this.dataDirectory && !fs.existsSync(this.dataDirectory)) { + fs.mkdirSync(this.dataDirectory, { recursive: true }); + } // Not all schemas will need vector installed, but we don't have an good way // to swap extensions after starting PGLite, so we always include it. const vector = (await dynamicImport("@electric-sql/pglite/vector")).vector; diff --git a/src/emulator/dataconnectEmulator.ts b/src/emulator/dataconnectEmulator.ts index c9f86daf945..5aac8521d83 100644 --- a/src/emulator/dataconnectEmulator.ts +++ b/src/emulator/dataconnectEmulator.ts @@ -73,7 +73,6 @@ export class DataConnectEmulator implements EmulatorInstance { let resolvedConfigDir; try { resolvedConfigDir = this.args.config.path(this.args.configDir); - const info = await DataConnectEmulator.build({ configDir: resolvedConfigDir }); if (requiresVector(info.metadata)) { if (Constants.isDemoProject(this.args.projectId)) { @@ -125,7 +124,7 @@ export class DataConnectEmulator implements EmulatorInstance { dataDirectory = this.args.config.path(dataDirectory); } const postgresDumpPath = this.args.importPath - ? path.join(this.args.config.path(this.args.importPath), "postgres.tar.gz") + ? path.join(this.args.importPath, "postgres.tar.gz") : undefined; this.postgresServer = new PostgresServer({ dataDirectory,