From 24656afff3e25d45a52ad0b999a8b4a552c26fe3 Mon Sep 17 00:00:00 2001 From: Esdras Renan Date: Tue, 25 Nov 2025 13:23:57 -0300 Subject: [PATCH] fix(start-web): adiciona fallback de rebuild para better-sqlite3 --- scripts/start-web.sh | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/scripts/start-web.sh b/scripts/start-web.sh index 90d18c2..206d5e2 100644 --- a/scripts/start-web.sh +++ b/scripts/start-web.sh @@ -91,14 +91,34 @@ try { } catch (error) { console.error("[start-web] better-sqlite3 load failed:", error?.message || error) process.exit(1) -} + } EOF } + copy_fallback_binding() { + local temp_dir="/tmp/bsql-fallback" + rm -rf "$temp_dir" + mkdir -p "$temp_dir" + ( + cd "$temp_dir" && + npm install better-sqlite3@11.10.0 --build-from-source --no-save >/dev/null 2>&1 + ) || { + echo "[start-web] fallback npm install falhou" + return 1 + } + local src_pkg="$temp_dir/node_modules/better-sqlite3" + local dest_pkg="/app/node_modules/.bun/better-sqlite3@11.10.0/node_modules/better-sqlite3" + mkdir -p "$dest_pkg" + cp -R "$src_pkg/"* "$dest_pkg/" || return 1 + echo "[start-web] fallback: pacote better-sqlite3 copiado para .bun store" + return 0 + } + rebuild_and_repin_sqlite() { echo "[start-web] rebuilding better-sqlite3 para a runtime atual" npm rebuild better-sqlite3 --build-from-source >/dev/null 2>&1 || { - echo "[start-web] rebuild falhou; continuando com bindings existentes" >&2 + echo "[start-web] rebuild falhou; tentando fallback" >&2 + copy_fallback_binding || echo "[start-web] fallback também falhou" >&2 } node - <<'EOF' const fs = require("node:fs") @@ -131,8 +151,11 @@ EOF else rebuild_and_repin_sqlite check_better_sqlite3 || { - echo "[start-web] ERRO: better-sqlite3 inválido após rebuild" >&2 - exit 1 + echo "[start-web] ERRO: better-sqlite3 inválido após rebuild; tentando fallback" + copy_fallback_binding && check_better_sqlite3 || { + echo "[start-web] ERRO: better-sqlite3 continua inválido após fallback" >&2 + exit 1 + } } fi fi