fix(scripts): ladda .env i translate/publish-skripten (annars saknades DATABASE_URL)
De fristandiga skripten laste bara process.env och kunde inte hitta DATABASE_URL (till skillnad fran worker/seed som laddar .env). Lade till samma dotenv-sokning (.env / ../.env / ../../.env) sa de funkar med utan att man exporterar variabler manuellt. Verifierat: bada kor nu utan export och laser .env.
This commit is contained in:
@@ -10,9 +10,22 @@
|
|||||||
*
|
*
|
||||||
* Kräver DATABASE_URL i miljön.
|
* 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 { and, eq, sql } from "drizzle-orm";
|
||||||
import { createDatabase, schema } from "@app/database";
|
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() {
|
async function main() {
|
||||||
if (!process.env.DATABASE_URL) throw new Error("Sätt DATABASE_URL.");
|
if (!process.env.DATABASE_URL) throw new Error("Sätt DATABASE_URL.");
|
||||||
const arg = (process.argv[2] ?? "all").toLowerCase();
|
const arg = (process.argv[2] ?? "all").toLowerCase();
|
||||||
|
|||||||
@@ -14,12 +14,25 @@
|
|||||||
*
|
*
|
||||||
* Kräver DATABASE_URL och REDIS_URL i miljön (samma som API/worker använder).
|
* 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 IORedis from "ioredis";
|
||||||
import { Queue } from "bullmq";
|
import { Queue } from "bullmq";
|
||||||
import { eq } from "drizzle-orm";
|
import { eq } from "drizzle-orm";
|
||||||
import { createDatabase, schema } from "@app/database";
|
import { createDatabase, schema } from "@app/database";
|
||||||
import { JOB_QUEUE_NAME } from "@app/shared-types";
|
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"];
|
const LANGS = ["en", "da", "de", "es", "fi", "fr", "it", "nb", "nl", "pl", "pt"];
|
||||||
|
|
||||||
async function main() {
|
async function main() {
|
||||||
|
|||||||
Reference in New Issue
Block a user