From f32a7a83889dd6180b2e4cde9b30286ab6874e49 Mon Sep 17 00:00:00 2001 From: haivuw Date: Mon, 21 Oct 2024 18:07:44 +0700 Subject: [PATCH] fix: astrodb vite plugin throws in vitest and cannot seed database (#11435) * fix: ASTRO_DATABASE_FILE is undefined in virtual module * changeset * handle undefined * Update .changeset/lemon-beans-admire.md Co-authored-by: Emanuele Stoppa * use JSON.stringify --------- Co-authored-by: Emanuele Stoppa --- .changeset/lemon-beans-admire.md | 5 +++++ packages/db/src/core/integration/vite-plugin-db.ts | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 .changeset/lemon-beans-admire.md diff --git a/.changeset/lemon-beans-admire.md b/.changeset/lemon-beans-admire.md new file mode 100644 index 0000000000..d593bd7434 --- /dev/null +++ b/.changeset/lemon-beans-admire.md @@ -0,0 +1,5 @@ +--- +'@astrojs/db': patch +--- + +Fixes a bug where `astro:db:seed` couldn't access to the environment variable `ASTRO_DATABASE_FILE` diff --git a/packages/db/src/core/integration/vite-plugin-db.ts b/packages/db/src/core/integration/vite-plugin-db.ts index 29e98222ea..7e10699df7 100644 --- a/packages/db/src/core/integration/vite-plugin-db.ts +++ b/packages/db/src/core/integration/vite-plugin-db.ts @@ -124,12 +124,13 @@ export function getLocalVirtualModContents({ tables: DBTables; root: URL; }) { + const { ASTRO_DATABASE_FILE } = getAstroEnv(); const dbInfo = getRemoteDatabaseInfo(); const dbUrl = new URL(DB_PATH, root); return ` import { asDrizzleTable, createLocalDatabaseClient, normalizeDatabaseUrl } from ${RUNTIME_IMPORT}; -const dbUrl = normalizeDatabaseUrl(import.meta.env.ASTRO_DATABASE_FILE, ${JSON.stringify(dbUrl)}); +const dbUrl = normalizeDatabaseUrl(${JSON.stringify(ASTRO_DATABASE_FILE)}, ${JSON.stringify(dbUrl)}); export const db = createLocalDatabaseClient({ dbUrl, enableTransactions: ${dbInfo.url === 'libsql'} }); export * from ${RUNTIME_VIRTUAL_IMPORT};