Update environment configuration for PostgreSQL: Add new environment variables for NextAuth and PostgreSQL settings in .env file, update docker-compose.yml to utilize these variables, and enhance README documentation for environment setup. Ensure DATABASE_URL is constructed dynamically if not defined.

This commit is contained in:
Julien Froidefond
2025-12-17 13:15:40 +01:00
parent 2c7a346cde
commit cb02b494f4
7 changed files with 121 additions and 9 deletions

View File

@@ -2,8 +2,31 @@ import { PrismaClient } from "@/prisma/generated/prisma/client";
import { PrismaPg } from "@prisma/adapter-pg";
import { Pool } from "pg";
// Construire DATABASE_URL si elle n'est pas définie, en utilisant les variables individuelles
let databaseUrl = process.env.DATABASE_URL;
if (!databaseUrl) {
const user = process.env.POSTGRES_USER || "gotgaming";
const password = process.env.POSTGRES_PASSWORD || "change-this-in-production";
const host = process.env.POSTGRES_HOST || "got-postgres";
const port = process.env.POSTGRES_PORT || "5432";
const db = process.env.POSTGRES_DB || "gotgaming";
// Encoder le mot de passe pour l'URL
const encodedPassword = encodeURIComponent(password);
databaseUrl = `postgresql://${user}:${encodedPassword}@${host}:${port}/${db}?schema=public`;
}
if (typeof databaseUrl !== "string") {
throw new Error("DATABASE_URL must be a string");
}
// Logger l'URL de connexion (masquer le mot de passe pour la sécurité)
const logUrl = databaseUrl.replace(/:\/\/[^:]+:[^@]+@/, "://***:***@");
console.log(`[Prisma] Connecting to PostgreSQL: ${logUrl}`);
const pool = new Pool({
connectionString: process.env.DATABASE_URL,
connectionString: databaseUrl,
});
const adapter = new PrismaPg(pool);