fix: utiliser mysql2 pool explicite pour résoudre l'erreur JSON dans Drizzle
This commit is contained in:
12
server/db.ts
12
server/db.ts
@@ -1,5 +1,6 @@
|
|||||||
import { eq, desc, and, like, gte, lte, or, sql } from "drizzle-orm";
|
import { eq, desc, and, like, gte, lte, or, sql } from "drizzle-orm";
|
||||||
import { drizzle } from "drizzle-orm/mysql2";
|
import { drizzle } from "drizzle-orm/mysql2";
|
||||||
|
import mysql from "mysql2/promise";
|
||||||
import {
|
import {
|
||||||
InsertUser,
|
InsertUser,
|
||||||
users,
|
users,
|
||||||
@@ -20,12 +21,19 @@ import {
|
|||||||
} from "../drizzle/schema";
|
} from "../drizzle/schema";
|
||||||
import { ENV } from "./_core/env";
|
import { ENV } from "./_core/env";
|
||||||
|
|
||||||
let _db: ReturnType<typeof drizzle> | null = null;
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||||
|
let _db: any = null;
|
||||||
|
|
||||||
export async function getDb() {
|
export async function getDb() {
|
||||||
if (!_db && process.env.DATABASE_URL) {
|
if (!_db && process.env.DATABASE_URL) {
|
||||||
try {
|
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) {
|
} catch (error) {
|
||||||
console.warn("[Database] Failed to connect:", error);
|
console.warn("[Database] Failed to connect:", error);
|
||||||
_db = null;
|
_db = null;
|
||||||
|
|||||||
@@ -391,6 +391,7 @@ async function processFeed(feed: RssFeed): Promise<FetchResult> {
|
|||||||
result.skippedItems++;
|
result.skippedItems++;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
console.error(`[RSS DEBUG veille] code=${e?.code} errno=${e?.errno} sqlMsg=${e?.sqlMessage} msg=${String(e?.message).substring(0,200)}`);
|
||||||
throw e;
|
throw e;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user