diff --git a/apps/worker/scripts/publish-translations.ts b/apps/worker/scripts/publish-translations.ts index 62bfa34..d445272 100644 --- a/apps/worker/scripts/publish-translations.ts +++ b/apps/worker/scripts/publish-translations.ts @@ -10,9 +10,22 @@ * * Kräver DATABASE_URL i miljön. */ +import { config as loadDotenv } from "dotenv"; +import { existsSync } from "node:fs"; +import path from "node:path"; import { and, eq, sql } from "drizzle-orm"; import { createDatabase, schema } from "@app/database"; +// Ladda .env (samma sökning som worker/seed) så DATABASE_URL finns även när +// skriptet körs fristående via `pnpm exec tsx`. +for (const candidate of [".env", "../.env", "../../.env"]) { + const p = path.resolve(process.cwd(), candidate); + if (existsSync(p)) { + loadDotenv({ path: p }); + break; + } +} + async function main() { if (!process.env.DATABASE_URL) throw new Error("Sätt DATABASE_URL."); const arg = (process.argv[2] ?? "all").toLowerCase(); diff --git a/apps/worker/scripts/translate-recipes.ts b/apps/worker/scripts/translate-recipes.ts index eb1a291..e703b62 100644 --- a/apps/worker/scripts/translate-recipes.ts +++ b/apps/worker/scripts/translate-recipes.ts @@ -14,12 +14,25 @@ * * Kräver DATABASE_URL och REDIS_URL i miljön (samma som API/worker använder). */ +import { config as loadDotenv } from "dotenv"; +import { existsSync } from "node:fs"; +import path from "node:path"; import IORedis from "ioredis"; import { Queue } from "bullmq"; import { eq } from "drizzle-orm"; import { createDatabase, schema } from "@app/database"; import { JOB_QUEUE_NAME } from "@app/shared-types"; +// Ladda .env (samma sökning som worker/seed) så DATABASE_URL/REDIS_URL finns +// även när skriptet körs fristående via `pnpm exec tsx`. +for (const candidate of [".env", "../.env", "../../.env"]) { + const p = path.resolve(process.cwd(), candidate); + if (existsSync(p)) { + loadDotenv({ path: p }); + break; + } +} + const LANGS = ["en", "da", "de", "es", "fi", "fr", "it", "nb", "nl", "pl", "pt"]; async function main() {