Skip to content

Commit 2f65dae

Browse files
authored
Remove PGlite fallback from cloud app (#120)
Cloud always uses Postgres via Hyperdrive or DATABASE_URL.
1 parent 2212916 commit 2f65dae

3 files changed

Lines changed: 9 additions & 29 deletions

File tree

‎apps/cloud/package.json‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828
"react-dom": "catalog:"
2929
},
3030
"devDependencies": {
31-
"@electric-sql/pglite": "^0.4.3",
3231
"@tailwindcss/vite": "catalog:",
3332
"@types/pg": "^8.15.4",
3433
"@types/react": "catalog:",

‎apps/cloud/src/env.ts‎

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ const sharedShape = {
1212

1313
const serverShape = {
1414
DATABASE_URL: Env.stringOr("DATABASE_URL", ""),
15-
PGLITE_DATA_DIR: Env.stringOr("PGLITE_DATA_DIR", ".pglite"),
1615
ENCRYPTION_KEY: Env.stringOr(
1716
"ENCRYPTION_KEY",
1817
"local-dev-encryption-key",
@@ -28,7 +27,6 @@ type SharedEnv = Readonly<{
2827

2928
type ServerEnv = SharedEnv & Readonly<{
3029
DATABASE_URL: string;
31-
PGLITE_DATA_DIR: string;
3230
ENCRYPTION_KEY: string;
3331
WORKOS_API_KEY: string;
3432
WORKOS_CLIENT_ID: string;

‎apps/cloud/src/services/db.ts‎

Lines changed: 9 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,11 @@ const resolveHyperdriveUrl = Effect.tryPromise({
3030

3131
const resolveConnectionString = resolveHyperdriveUrl.pipe(
3232
Effect.map((url) => url ?? (server.DATABASE_URL || undefined)),
33+
Effect.flatMap((url) =>
34+
url
35+
? Effect.succeed(url)
36+
: Effect.fail(new Error("No database connection string available (set DATABASE_URL or configure Hyperdrive)")),
37+
),
3338
);
3439

3540
// ---------------------------------------------------------------------------
@@ -47,22 +52,6 @@ const acquirePostgres = (connectionString: string) =>
4752
const releasePostgres = ({ pool }: { pool: { end: () => Promise<void> } }) =>
4853
Effect.promise(() => pool.end()).pipe(Effect.orElseSucceed(() => undefined));
4954

50-
// ---------------------------------------------------------------------------
51-
// PGlite — local dev fallback
52-
// ---------------------------------------------------------------------------
53-
54-
const acquirePglite = Effect.tryPromise(async () => {
55-
const { PGlite } = await import("@electric-sql/pglite");
56-
const { drizzle } = await import("drizzle-orm/pglite");
57-
const client = new PGlite(server.PGLITE_DATA_DIR);
58-
return { db: drizzle(client, { schema }) as DrizzleDb, client };
59-
});
60-
61-
const releasePglite = ({ client }: { client: { close?: () => Promise<void> } }) =>
62-
Effect.promise(() => client.close?.() ?? Promise.resolve()).pipe(
63-
Effect.orElseSucceed(() => undefined),
64-
);
65-
6655
// ---------------------------------------------------------------------------
6756
// Service
6857
// ---------------------------------------------------------------------------
@@ -75,16 +64,10 @@ export class DbService extends Context.Tag("@executor/cloud/DbService")<
7564
this,
7665
Effect.gen(function* () {
7766
const connectionString = yield* resolveConnectionString;
78-
79-
if (connectionString) {
80-
const { db } = yield* Effect.acquireRelease(
81-
acquirePostgres(connectionString),
82-
releasePostgres,
83-
);
84-
return db;
85-
}
86-
87-
const { db } = yield* Effect.acquireRelease(acquirePglite, releasePglite);
67+
const { db } = yield* Effect.acquireRelease(
68+
acquirePostgres(connectionString),
69+
releasePostgres,
70+
);
8871
return db;
8972
}),
9073
);

0 commit comments

Comments
 (0)