From e50335a8c29d10840e0dae0c391c2df86a7ffcd6 Mon Sep 17 00:00:00 2001 From: R0m1k3 Date: Thu, 26 Feb 2026 16:03:37 +0100 Subject: [PATCH] feat: Add `db-init.js` script to initialize PostgreSQL database with `ai_supplier_context` and `session_snapshots` tables. --- scripts/db-init.js | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/scripts/db-init.js b/scripts/db-init.js index 139f4e7..5fa73d3 100644 --- a/scripts/db-init.js +++ b/scripts/db-init.js @@ -1,16 +1,15 @@ -import { migrate } from "drizzle-orm/node-postgres/migrator"; -import { drizzle } from "drizzle-orm/node-postgres"; -import { Pool } from "pg"; -import * as schema from "../src/db/schema"; -import fs from "fs"; -import path from "path"; +const { Pool } = require('pg'); +const fs = require('fs'); +const path = require('path'); + +const cwd = path.resolve(__dirname, '..'); // get app root when inside /scripts async function main() { console.log("[DB Init] Starting database migration & initialization..."); let connectionString = process.env.DATABASE_URL; try { - const CONFIG_PATH = path.join(process.cwd(), "data", ".db-config.json"); + const CONFIG_PATH = path.join(cwd, "data", ".db-config.json"); if (fs.existsSync(CONFIG_PATH)) { const config = JSON.parse(fs.readFileSync(CONFIG_PATH, "utf-8")); if (config.url) { @@ -29,15 +28,8 @@ async function main() { try { const tempPool = new Pool({ connectionString, max: 1 }); - const tempDb = drizzle(tempPool, { schema }); - console.log("[DB Init] Connection established. Running migrations..."); - - // Note: For Drizzle without pre-generated SQL migrations (using drizzle-kit push in dev), - // running migrations programmatically requires the generated sql files. - // Since we want to auto-create tables without requiring dev dependencies in production, - // we will create the specific missing table `ai_supplier_context` directly if it doesn't exist to ensure the app works. - // A full robust migration system would use `npx drizzle-kit push` but that is not available in the standalone build easily. + console.log("[DB Init] Connection established. Running migrations via raw SQL..."); await tempPool.query(` CREATE TABLE IF NOT EXISTS "ai_supplier_context" (