From 7fc7f7d1de4b3302bfbd2794452da492fe51f790 Mon Sep 17 00:00:00 2001 From: Manus Deploy Date: Sun, 3 May 2026 06:07:00 -0400 Subject: [PATCH] =?UTF-8?q?fix:=20utiliser=20mysql2=20pool=20explicite=20p?= =?UTF-8?q?our=20r=C3=A9soudre=20l'erreur=20JSON=20dans=20Drizzle?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/db.ts | 12 ++++++++++-- server/rssEngine.ts | 1 + 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/server/db.ts b/server/db.ts index 4620667..2488c20 100644 --- a/server/db.ts +++ b/server/db.ts @@ -1,5 +1,6 @@ import { eq, desc, and, like, gte, lte, or, sql } from "drizzle-orm"; import { drizzle } from "drizzle-orm/mysql2"; +import mysql from "mysql2/promise"; import { InsertUser, users, @@ -20,12 +21,19 @@ import { } from "../drizzle/schema"; import { ENV } from "./_core/env"; -let _db: ReturnType | null = null; +// eslint-disable-next-line @typescript-eslint/no-explicit-any +let _db: any = null; export async function getDb() { if (!_db && process.env.DATABASE_URL) { try { - _db = drizzle(process.env.DATABASE_URL); + const pool = mysql.createPool({ + uri: process.env.DATABASE_URL, + waitForConnections: true, + connectionLimit: 10, + enableKeepAlive: true, + }); + _db = drizzle(pool); } catch (error) { console.warn("[Database] Failed to connect:", error); _db = null; diff --git a/server/rssEngine.ts b/server/rssEngine.ts index 443106f..baa86a2 100644 --- a/server/rssEngine.ts +++ b/server/rssEngine.ts @@ -391,6 +391,7 @@ async function processFeed(feed: RssFeed): Promise { result.skippedItems++; } } else { + console.error(`[RSS DEBUG veille] code=${e?.code} errno=${e?.errno} sqlMsg=${e?.sqlMessage} msg=${String(e?.message).substring(0,200)}`); throw e; } }